6

这是最初的情况:

XAML:

<ComboBox Grid.Row="0"
           Grid.Column="1"
           Margin="0,3"
           HorizontalAlignment="Stretch"
           DisplayMemberPath="DisplayText"
           ItemsSource="{Binding ObjectSource}" />

视图模型:

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

    set
    {
        this.SetProperty(ref this.objectSource, value);
    }
}

My Objects 包含一个名称(字符串)、有效自(dateTime)和一个 displayText(仅获取字符串),它们结合了名称和有效自用于显示。

在这种简单的情况下,我可以打开组合框并查看所有条目,选择一个后它还会在组合框中显示正确的显示文本。现在我再次打开下拉区域并选择另一个条目。结果是所选项目切换(再次打开下拉条目时可以看到突出显示的项目)。但是combobox里面显示的item没有变,还是有第一次选择的DisplayText。

结果情况截图

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

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

4

1 回答 1

2

只是为了完整性:)

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

于 2013-07-17T07:15:24.417 回答