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

 画面に2つのコンボボックスがあったとして、

 ・1つ目のコンボボックスでアイテムを選択する

 ・2つ目のコンボボックスのアイテムに、1つ目で選択したデータに関連するアイテムのみを設定

みたいなシチュエーションがあったとします。そんな場合はどうするかメモ。


【画面イメージ(適当)】

カテゴリーのコンボボックスでカテゴリーを選択すると、品名のコンボボックスに選択されたカテゴリーに属する品名のみを表示したい感じです。

それぞれのコンボボックスにはList<KeyValuePair<string, string>>型を使用するとします。

【カテゴリーの種類(これまた適当)】

・先頭に空白行を追加しています。

【品名の種類(適当)】

・品名のキー内先頭2桁の数字は、カテゴリーのキーに紐づいているとします。


①カテゴリーコンボボックスにソースを設定します。

・ついでに、品名に使用するディクショナリも作っています。


②カテゴリーコンボボックスのアイテムが選択されたら、品名コンボボックスのソースを設定する

・こちらも先頭に空白行を追加しています。

・カテゴリーコンボボックスで空白が選択されたときの処理は書いていません。


【結果の画面イメージ】

こんな感じで、カテゴリーに紐づく品名のみを選択項目として設定できます。


※VisualStudio2022(preview)、.Net6(preview)で動作確認をしています。

コメント

このブログの人気の投稿

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

【C#】いつもLog4netの設定を忘れる