ComboBoxとDataGridViewComboBoxColumnを同期させる
まさか、こんなことがすんなりできないなんて思わなかった。以下、順を追って作業。
- ComboBoxとDataGridViewが配置されたFormを用意する
ComboBoxはgendersComboBox、DataGridViewはgenderDataGridViewというベタな名前にする。
- データ連結に使用するリスト形式のオブジェクトを用意する
IListgenders = new List (); genders.Add(new GenderItem(0, "男")); genders.Add(new GenderItem(1, "女"));
- オブジェクトをComboBoxにバインドする
this.gendersComboBox.DataSource = genders; this.gendersComboBox.DisplayMember = "Name"; this.gendersComboBox.ValueMember = "Value";
- オブジェクトをDataGridView(DataGridViewComboBoxColumn)にバインドする
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn(); this.genderDataGridView.Columns.Add(column); column.DataSource = genders; column.DisplayMember = "Name"; column.ValueMember = "Value";
と組んでビルドして起動する。
いきなり駄目だ。同じデータソースを参照しているはずなのに、ComboBoxの指しているアイテムはDataGridViewのカラムと同期している以前に表示されてもいない。スクリーンショットでは解らないが、DataGridViewComboBoxColumnのComboBoxの内容を変更しても、うんともすんとも言わない。
-
- 4時間経過 --
結局解決策まで行き着いたのだが、今日はもう眠いのでまた明日に。