c# - WPF 组合框 : Wrong Item is displayed

标签 c# wpf mvvm combobox

这是初始情况:

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。

Screenshot of the result situation

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

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

最佳答案

只是为了完整性:)

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

关于c# - WPF 组合框 : Wrong Item is displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17676170/

相关文章:

c# - C#中的多个并行任务不会缩短计算时间

wpf - 如何使用 prism wpf 设置用户控件的数据上下文?

c# - WPF DataGrid 中选定行的前景色未更新

c# - 无法绑定(bind)到 ReactiveUI 中覆盖的 WPF TextBox

c# - 是否有包装通用方法的简写?

c# - C#中声音文件的频率和振幅

c# - Visual Studio 在已保存的文件上提示 'Save as...' 对话框。

C# 代码不执行

WPF:样式化通用基本控件

c# - Xamarin Forms 访问所有 View 模型