キー値のペアを使用して動作を実現することはできません。以下の例を参照してください。 キー用とキー用の2つのプロパティを持つクラスを作成するだけです。その後、このクラスのコレクションをitemsSourceとしてバインドし、選択した値を文字列プロパティにバインドします。つまり、Datas.Countriesはクラスのコレクションです。
<ComboBox Name="cbSource" Grid.Row="1" Grid.Column="3"
ItemsSource="{Binding Datas.Countries, Mode=OneWay}"
SelectedValue="{Binding SomePropertyToHoldKeyValue, Mode=TwoWay}"
DisplayMemberPath="Value" SelectedValuePath="Key"></ComboBox>
私たちはより良い例とのSelectedItem、SelectedValueの、DisplayMemberPathとSelectedValuePathの違いを理解することができると思います。 、Nameプロパティに
<ComboBox ItemsSource="{Binding Source={StaticResource Employees}}"
DisplayMemberPath="Name"
SelectedValuePath="Id"/>
DisplayMemberPath
ポイントなので、コンボボックスに表示されている値とドロップダウンリストに含まれている従業員のエントリーます:
public class Employee
{
public int Id;
public string Name;
}
と次のXAML:このクラスを参照してください。 EmployeeオブジェクトのNameプロパティになります。
他の2つを理解するには、まずSelectedItem
を理解する必要があります。 SelectedItem
は、現在選択されているEmployeeオブジェクトをコンボボックスから返します。また、SelectedItem
にEmployeeオブジェクトを割り当てて、ComboBoxの現在の選択範囲を設定することもできます。
SelectedValuePath
は、現在選択されている従業員のIDをSelectedValue
で取得できることを意味します。 SelectedValue
をId(従業員リストに存在すると想定)に設定することによって、ComboBoxで現在選択されている従業員を設定することもできます。
私はあなたがここで質問しようとしているものは得られません。どうか明らかにしてください。 – Martin