WPF-コンボボックスSelectedItemが設定されていませんか?

2010年08月18日に質問されました。  ·  閲覧回数 11.9k回  ·  ソース

Rachel picture
2010年08月18日

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

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

これを行う簡単な方法はありますか? または、CustomSettingsクラスにIDが含まれているので、おそらく別の方法ですか?

回答

Heinz K picture
2010年08月18日
25

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

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

SelectedItem="{Binding Path=CustomSettingProperty,Mode=TwoWay}"