2017-12-01 20 views
0

私は過去数時間、私の脳を悩ませてきましたが、おそらく解決しやすい問題があります。私は誰かが正しい方向に私を指すことを願っています:)バインドコンボボックスWPFカスタムオブジェクト

私はユーザーがxmlファイルを編集できるWPFプロジェクトを持っています。私は、次のプロパティがあり、そのFilterSettingと呼ばれるオブジェクトにxmlファイルをシリアライズ:

public int FilterType {get; set;} 
    public string FilterName {get; set;} 
    public string FilterDescription {get; set;} 

私は2つのテキストボックスと静的辞書から生成されたコンボボックスを持って、次の値で

Dictionary<int, string> d = new Dictionary<int, string>(); 
     d.Add(1, "FilterType 1 description"); 
     d.Add(2, "FilterType 2 description"); 
     d.Add(3, "FilterType 3 description"); 
     d.Add(4, "FilterType 4 description"); 
     d.Add(5, "FilterType 5 description"); 
     d.Add(6, "FilterType 6 description"); 

私はDataContextのセットFilterSettingオブジェクトに、テキストボックスの双方向バインドをFilterNameに、に、うまくいきます。私がしたいのは、私の辞書のオプションを使用して同じ方法でComboBoxをバインドし、FilterSettingオブジェクトのFilterTypeプロパティへの双方向バインドを行うことです。

どうすればよいですか? :)

ピーター

+0

私はあなたがしようとしていることについて少し混乱しています。 FilterType、FilterName、およびFilterDescriptionを含むオブジェクトがあります。これらは一緒に行くアイテムのようなものです。次に、名前と説明のためのTextboxと、FilterType-> FilterDescriptionを表す辞書を持つコンボボックスを持つUIがありますか?コンボボックスの双方向バインディングを作成する場合、ENTIRE設定オブジェクト(タイプ、名前、およびdesc)の値を変更する予定ですか?または、おそらく私はフィルターのプロパティ間の関係を誤解しています:)。私は答える前に誤解したくない。 – Rowbear

答えて

0

私はあなたが求めているものを理解していれば、あなたがのfilterTypeに結合しながら、コンボボックスが説明を表示したいようです。 これが該当する場合は、DisplayMemberPathとSelectedValuePathを使用してこれを実行します。 例:xml:

<ComboBox ... 
DisplayMemberPath = "FilterDescription" 
SelectedValuePath = "FilterType" 
.../> 
+0

Items Itemsは辞書なので、Key for SelectedValuePathとDisplayMemberPathの値が必要です。 –

+0

こんにちはAndrewとEd。私はコンボボックスに辞書からの説明を表示し、DisplayMemberPathのSelectedValuePathとValueにKeyを使用すると、これを行います。しかし、FilterSettingオブジェクトを読み込むと、コンボボックスの値は自動的には設定されず、テキストボックスのように保存されません。私は何とかFilterSettingオブジェクトをコンボボックスにリンクする必要があります。 –

+0

SelectedValue = "{Binding FilterSetting.FilterType}"を設定しましたか? –

関連する問題