我有一个ComboBox,其ItemsSource绑定到静态List<CustomSettings>
个选项。 ComboBox是绑定到CustomObject类的表单的一部分,该类的一个属性是CustomSettingProperty。
我想将ComboBox的SelectedItem绑定到CustomObject中指定的属性,但SelectedItem="{Binding Path=CustomSettingProperty}"
未设置默认的选定项。使用断点我可以看到它正在调用get;
方法,所以我认为问题可能在于CustomSettingProperty是与List<CustomObject>
分开创建的,因此WPF认为它不是同一个项目。
有一种简单的方法吗?或者也许是另一种选择,因为CustomSettings类确实包含Id?
答案 0 :(得分:22)
如果所选项目与List中包含的实例不同,则必须覆盖CustomObject中的Equals(),以使ComboBox知道它是同一个对象。
如果它是同一个实例,也许只是一个简单的事情,比如将BindingMode设置为TwoWay:
SelectedItem="{Binding Path=CustomSettingProperty,Mode=TwoWay}"