13

我有一个 ComboBox,它的 ItemsSource 绑定到一个静态List<CustomSettings>选项。ComboBox 是绑定到 CustomObject 类的表单的一部分,该类的属性之一是 CustomSettingProperty。

我想将 ComboBox 的 SelectedItem 绑定到 CustomObject 中指定的属性,但是SelectedItem="{Binding Path=CustomSettingProperty}"没有设置默认选中项。使用断点我可以看到它正在调用该get;方法,所以我认为问题可能在于 CustomSettingProperty 是与 WPF 分开创建的,List<CustomObject>因此 WPF 认为它不是同一个项目。

是否有捷径可寻?或者也许是一个替代方案,因为 CustomSettings 类确实包含一个 Id?

4

1 回答 1

25

如果选择的项目与 List 中包含的实例不同,则必须重写 CustomObject 中的 Equals() 以让 ComboBox 知道它是同一个对象。

如果是同一个实例,也许只是简单的事情,比如将BindingMode设置为TwoWay:

SelectedItem="{Binding Path=CustomSettingProperty,Mode=TwoWay}"
于 2010-08-17T19:36:58.487 回答