投稿

ラベル(Dictionary)が付いた投稿を表示しています

【C#】2つのコンボボックスを使って、コンボボックスソースを切り替えたい

イメージ
 画面に2つのコンボボックスがあったとして、  ・1つ目のコンボボックスでアイテムを選択する  ・2つ目のコンボボックスのアイテムに、1つ目で選択したデータに関連するアイテムのみを設定 みたいなシチュエーションがあったとします。そんな場合はどうするかメモ。 【画面イメージ(適当)】 カテゴリーのコンボボックスでカテゴリーを選択すると、品名のコンボボックスに選択されたカテゴリーに属する品名のみを表示したい感じです。 それぞれのコンボボックスにはList<KeyValuePair<string, string>>型を使用するとします。 【カテゴリーの種類(これまた適当)】 ・先頭に空白行を追加しています。 【品名の種類(適当)】 ・品名のキー内先頭2桁の数字は、カテゴリーのキーに紐づいているとします。 ①カテゴリーコンボボックスにソースを設定します。 ・ついでに、品名に使用するディクショナリも作っています。 ②カテゴリーコンボボックスのアイテムが選択されたら、品名コンボボックスのソースを設定する ・こちらも先頭に空白行を追加しています。 ・カテゴリーコンボボックスで空白が選択されたときの処理は書いていません。 【結果の画面イメージ】 こんな感じで、カテゴリーに紐づく品名のみを選択項目として設定できます。 ※VisualStudio2022(preview)、.Net6(preview)で動作確認をしています。

【C#】ComboBoxのデータソースにディクショナリを設定したい

コンボボックスのデータソースに、ディクショナリを設定します。 また、ディクショナリはアプリケーション構成ファイル(App.config)から作成します。 ①アプリケーション構成ファイルにディクショナリの素を定義します。 ②アプリケーション構成ファイルからディクショナリに設定します。 ※ディクショナリ(ComboboxSource)は別の場所で定義しています。 ③コンボボックスにディクショナリを設定します。 ※DataSourceはIListを実装しているか、Array系でないと設定できないため、List変換します。 ④コンボボックスで選択されたvalueを取得します。 ※単純にSelectedValueでOK。