C# を使用して、コンボボックス列を含むデータグリッドビューを作成したいと考えています。
問題は、各行のコンボボックスに異なる値を与える方法がわからないことです。
DataTable dt = new DataTable();
dt.Columns.Add("state");
dt.Columns.Add("city");
dt.Rows.Add("a1", "b1");
dt.Rows.Add("a1", "b2");
dt.Rows.Add("a2", "b3");
dt.Rows.Add("a2", "b4");
dt.Rows.Add("a3", "b5");
DataGridViewComboBoxColumn comboStates = new DataGridViewComboBoxColumn();
comboStates.HeaderText = "HeaderText_1";
this.dataGridView1.Columns.Insert(0, comboStates);
DataGridViewComboBoxColumn comboCities = new DataGridViewComboBoxColumn();
comboCities.HeaderText = "HeaderText_2";
this.dataGridView1.Columns.Insert(1, comboCities);
for (int i = 0; i < dt.Rows.Count; i++)
{
dataGridView1.Rows.Add();
comboStates.Items.Add(dt.Rows[i][0]);
DataGridViewComboBoxCell stateCell = (DataGridViewComboBoxCell) (dataGridView1.Rows[i].Cells[0]);
stateCell.Value = comboStates.Items[i];
comboCities.Items.Add(dt.Rows[i][1]);
DataGridViewComboBoxCell cityCell = (DataGridViewComboBoxCell)(dataGridView1.Rows[i].Cells[1]);
cityCell.Value = comboCities.Items[i];
}
この例では、次の結果が得られます。
行ごとに:
コンボボックス列状態:
a1
a1
a2
a2
a3
コンボボックスの列の市区町村:
b1
b2
b3
b4
b5
私はデータテーブルをループしているので、これは正常であることを知っています。
では、どうすればこの結果を得ることができますか:
row1: コンボボックス列状態 コンボボックス列市区町村
a1 b1 - b2
row2: コンボボックス列状態 コンボボックス列市区町村
a2 b3 - b4
row2: コンボボックス列状態 コンボボックス列市区町村
a3 b5
私はC#が初めてです。よく検索しましたが、この問題を解決する解決策が見つかりませんでした。ありがとう