1

プロジェクトでは、ComboBox1とComboBox2という2つのComboBoxを表示しています。私は両方のComboBoxをKeyValueペアでバインドしています。Dictionaryは次のようにdictionary1と言います。

ComboBox1.ItemsSource = dictionary1 ;
ComboBox1.SelectedItem = ComboBox1.Items[0];

//Setting the Item Source of Patient Name Combo Box.
ComboBox2.ItemsSource = dictionary1 ;
ComboBox2.SelectedItem = ComboBox2.Items[0];

XAMLの部分では、以下に説明するように、辞書のCombBox1にKeyを、ComboBox2にValueを表示しています。

<ComboBox
       x:Name             ="ComboBox1"
       DisplayMemberPath  ="Key"
       SelectedValue      ="{Binding Source=ComboBox2, Path=DisplayMemberPath, Mode=TwoWay}"/>

<ComboBox
       x:Name              ="ComboBox2"
       DisplayMemberPath   ="Value"
       SelectionChanged    ="ComboBox2_SelectionChanged"
       />

目的: -ComboBox1の選択を変更すると、ComboBox2.SelectedItemの対応する値に影響します。また、ComboBox2の選択を変更すると、ComboBox1.SelectedItemの対応するキー値に影響します。

誰かが私の上記のコードのどこに間違いがあるのか​​教えてもらえますか、または上記の目的を達成するのを手伝ってください。前もって感謝します。

4

2 に答える 2

1

これはうまくいくはずです

<ComboBox
       x:Name             ="ComboBox1"
       DisplayMemberPath  ="Key"
       SelectedItem      ="{Binding ElementName=ComboBox2, Path=SelectedItem, Mode=TwoWay}"/>

<ComboBox
       x:Name              ="ComboBox2"
       DisplayMemberPath   ="Value"
       />
于 2012-08-22T06:30:08.950 に答える
1

私は少なくとも2つの問題を見ることができます:

  1. SourceではなくElementNameである必要があります
  2. DisplayMemberPathではなくPathにする必要があります

私はこれがうまくいくと思います:

<ComboBox
   x:Name             ="ComboBox1"
   DisplayMemberPath  ="Key"
   SelectedValue      ="{Binding ElementName=ComboBox2, Path=SelectedValue}"/>

<ComboBox
   x:Name             ="ComboBox2"
   DisplayMemberPath  ="Value" />
于 2012-08-22T06:31:25.753 に答える