C#の Dictionary クラスでは、連想配列というものを扱う事が出来ます。
連想配列はインデックス番号の代わりに Key と呼ばれるオブジェクトに Value と呼ばれる値を関連付けて管理する事が出来る配列です。
WPF の ComboBox へ表示するソースとして、この Dictionary クラスのデータを使う為の方法を解説してみます。
ComboBoxにバインドする
ComboBoxは表示する項目と内部的に管理する値とを持つことが出来ます。
ここでは、内部的な値に Dictionary の Key を使用し、表示する項目に Dictionary の Value が使われるように設定を行なっていきます。
XAML
<ComboBox ItemsSource="{Binding CountryDic}"
SelectedValuePath="Key"
DisplayMemberPath="Value"/>
ItemsSource へ Dictionaryクラスのオブジェクト "CountryDic" をセットしています。
SelectedValuePath に "Key" と指定する事で Dictionary の Key 項目が参照されます。
DisplayMenberPath に "Value" と指定する事で Dictionary の Value 項目が表示項目となります。
コード
public partial class MainWindow : Window
{
public Dictionary<string, string> CountryDic { get; set; }
public MainWindow()
{
CountryDic = new Dictionary<string, string>()
{
{ "CA", "カナダ" },
{ "DE", "ドイツ" },
{ "FR", "フランス" },
{ "GB", "イギリス" },
{ "IT", "イタリア" },
{ "JP", "日本" },
{ "US", "アメリカ合衆国" },
};
InitializeComponent();
DataContext = this;
}
}
コンボボックスには Dictionary の Value の内容が表示され、ComboBox.SelectedValue では Key の値が取得出来ます。


コメント
コメントを投稿