13

オプションの静的にバインドされた ItemsSource を持つ ComboBox がList<CustomSettings>あります。ComboBox は、CustomObject クラスにバインドされたフォームの一部であり、そのクラスのプロパティの 1 つが CustomSettingProperty です。

ComboBox の SelectedItem を CustomObject で指定されたプロパティにバインドしたいのSelectedItem="{Binding Path=CustomSettingProperty}"ですが、デフォルトの選択項目を設定していません。ブレークポイントを使用すると、get;メソッドを呼び出していることがわかります。そのため、CustomSettingProperty が とは別に作成されているList<CustomObject>ため、WPF は同じアイテムであると認識していないことが問題であると考えられます。

これを行う簡単な方法はありますか?または、CustomSettings クラスには Id が含まれているため、代わりになるのでしょうか?

4

1 に答える 1

25

選択された項目がリストに含まれているのと同じインスタンスでない場合は、CustomObjectのEquals()をオーバーライドして、それが同じオブジェクトであることをComboBoxに通知する必要があります。

同じインスタンスの場合は、BindingModeをTwoWayに設定するなどの単純なことだけかもしれません。

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