这是初始情况:
XAML:
<ComboBox Grid.Row="0"
Grid.Column="1"
Margin="0,3"
HorizontalAlignment="Stretch"
DisplayMemberPath="DisplayText"
ItemsSource="{Binding ObjectSource}" />
View 模型:
public Collection<MyObjects> ObjectSource
{
get
{
return this.objectSource;
}
set
{
this.SetProperty(ref this.objectSource, value);
}
}
My Objects 包含一个名称(字符串),有效起始时间(日期时间)和一个显示文本(仅获取字符串),它结合了名称和有效起始时间以供显示。
在这种简单的情况下,我可以打开组合框并查看所有条目,在选择一个条目后,它还会在组合框中显示正确的显示文本。 现在我再次打开下拉区域并选择另一个条目。 结果是所选项目切换(再次打开下拉条目时,您可以看到突出显示的项目)。但是combobox里面显示的item没有变化,还是第一个选择的DisplayText。
有人知道为什么组合框不更新吗? 提前致谢
编辑: 感谢大家的帮助。问题是 Equals 的错误覆盖。
最佳答案
只是为了完整性:)
你必须检查你的 Equals() 覆盖并确保它没有错误。 这些天我在列表框上遇到了同样的问题。
关于c# - WPF 组合框 : Wrong Item is displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17676170/