WPF ComboBox:显示错误的项目

Suk*_*ram 6 c# wpf combobox mvvm

这是最初的情况:

XAML:

<ComboBox Grid.Row="0"
           Grid.Column="1"
           Margin="0,3"
           HorizontalAlignment="Stretch"
           DisplayMemberPath="DisplayText"
           ItemsSource="{Binding ObjectSource}" />
Run Code Online (Sandbox Code Playgroud)

视图模型:

public Collection<MyObjects> ObjectSource
{
    get
    {
        return this.objectSource;
    }

    set
    {
        this.SetProperty(ref this.objectSource, value);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的对象包含一个名称(字符串),有效来自(dateTime)和一个displayText(字符串只有get),它结合了名称和有效来显示.

在这种简单的情况下,我可以打开组合框并查看所有条目,选择一个后它也会在组合框内显示正确的显示文本.现在我再次打开下拉区域并选择其他条目.结果是所选择的项目被切换(当再次打开下拉条目时,您可以看到高亮度项目).但是组合框内显示的项目没有改变,仍然有第一个选择的DisplayText.

结果情况的屏幕截图

有没有人知道为什么组合框不会更新?提前致谢

编辑:谢谢大家的帮助.问题是Equals的错误覆盖.

bli*_*eis 2

只是为了完整性:)

你必须检查你的 Equals() 覆盖并确保这没有问题。这些天我对列表框也遇到了同样的问题。