|
分類:[.NET 全般]
お世話になります。 C#初心者です。 DataGridViewに値をセットした後コンボボックスに、デフォルト値 をセットしているのですが、この状態でDataGridViewのヘッダー部分をクリックして ソートをかけるとコンボボックスの値が初期化されてしまい、せっかく セットしたデフォルト値が無効になってしまいます。 ソート時のクリックイベントを取得して、もういちどデフォルト値 を設定しても意味がありませんでした。
何かよい方法はありますでしょうか? お願いいたします。
dao.Selectdefault(dt); dataGridView1.DataSource = dt; --------- VALUE | ---------| a03 | ← 各ROWがコンボボックスとする a01 | 要素は下記のcombodataで取得 a02 | するため左記のデータはデフォルト a01 | のVALUE列であり実際に表示する a01 | ものは下記データのDISPLAY列 a01 | a03 | ---------
dao.Selectcombodata(combodata); --------- --------- VALUE |DISPLAY | ---------|---------| a01 |AAA | a02 |BBB | a03 |CCC | --------- --------- DataRow row = combodata.NewRow(); //コレクションの一番上を空白にするため row["VALUE"] = ""; row["DISPLAY"] = ""; combodata.Rows.InsertAt(row, 0); combobox_columns.DataSource = combodata; //実際の値が"VALUE"列、表示するテキストが"DISPLAY"列とする combobox_columns.ValueMember = "VALUE"; combobox_columns.DisplayMember = "DISPLAY";
//コンボボックスの初期表示を選択 for (int i = 0; i < dt.Rows.Count; i++) { //データグリッドのカテゴリ名コンボボックスにデフォルト値セット dataGridView1["combobox_columns", i].Value = dt.Rows[i]["VALUE"].ToString(); }
|