这是最初的情况:
XAML:
我的对象包含名称(字符串)、有效时间(日期时间)和显示文本(仅获取字符串),用于组合名称和有效时间进行显示。
在这种简单的情况下,我可以打开组合框并查看所有条目,在选择一个条目后,它也会在组合框中显示正确的显示文本。 现在我再次打开下拉区域并选择另一个条目。 结果是所选项已切换(当再次打开下拉条目时,可以看到高亮显示的项目)。但是组合框内显示的项目未更改,仍然是第一次选择的DisplayText。
有人能告诉我为什么组合框不会更新吗? 提前感谢!
编辑: 感谢大家的帮助。问题是Equals的错误覆盖。
XAML:
<ComboBox Grid.Row="0"
Grid.Column="1"
Margin="0,3"
HorizontalAlignment="Stretch"
DisplayMemberPath="DisplayText"
ItemsSource="{Binding ObjectSource}" />
ViewModel:
public Collection<MyObjects> ObjectSource
{
get
{
return this.objectSource;
}
set
{
this.SetProperty(ref this.objectSource, value);
}
}
我的对象包含名称(字符串)、有效时间(日期时间)和显示文本(仅获取字符串),用于组合名称和有效时间进行显示。
在这种简单的情况下,我可以打开组合框并查看所有条目,在选择一个条目后,它也会在组合框中显示正确的显示文本。 现在我再次打开下拉区域并选择另一个条目。 结果是所选项已切换(当再次打开下拉条目时,可以看到高亮显示的项目)。但是组合框内显示的项目未更改,仍然是第一次选择的DisplayText。
有人能告诉我为什么组合框不会更新吗? 提前感谢!
编辑: 感谢大家的帮助。问题是Equals的错误覆盖。