Допустим, имеется datagridview
, где есть 2 колонки с типом datagridviewcombobox
(далее cb
).
Нужно сделать, что бы от выбора значения в первом cb
зависели значения во втором cb
.
Проблема в том, что когда я создам вторую строчку и выберу в первом cb
другое значение, то во втором cb
первой строки сбросится значение cb
так как cb
действует на весь datagridviewcombobox
.
Можно ли этого избежать?
Создавайте и загружайте каждый комбобокс отдельно.
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.ColumnCount = 2;
DataGridViewRow row = new DataGridViewRow();
row = GetComboBox();
dataGridView1.Rows.Add(row);
dataGridView1.CellValueChanged += dataGridView1_CellValueChanged;
}
void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.Rows[e.RowIndex].Cells[1] = GetCell(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
}
private DataGridViewRow GetComboBox()
{
DataGridViewRow rowDG = new DataGridViewRow();
rowDG.CreateCells(dataGridView1);
DataGridViewComboBoxCell cell_CB1 = new DataGridViewComboBoxCell();
cell_CB1.Items.AddRange("Значение ComboBox'a 1");
cell_CB1.Items.AddRange("Значение ComboBox'a 2");
cell_CB1.Items.AddRange("Значение ComboBox'a 3");
DataGridViewComboBoxCell cell_CB2 = new DataGridViewComboBoxCell();
rowDG.Cells[0] = cell_CB1;
rowDG.Cells[1] = cell_CB2;
return rowDG;
}
private DataGridViewComboBoxCell GetCell(string value)
{
DataGridViewComboBoxCell cell_CB2 = new DataGridViewComboBoxCell();
switch(value)
{
case "Значение ComboBox'a 1":
cell_CB2.Items.AddRange("Значение ComboBox'a 101");
cell_CB2.Items.AddRange("Значение ComboBox'a 102");
cell_CB2.Items.AddRange("Значение ComboBox'a 103");
break;
case "Значение ComboBox'a 2":
cell_CB2.Items.AddRange("Значение ComboBox'a 201");
cell_CB2.Items.AddRange("Значение ComboBox'a 202");
cell_CB2.Items.AddRange("Значение ComboBox'a 203");
break;
default:
cell_CB2.Items.AddRange("Значение ComboBox'a 301");
cell_CB2.Items.AddRange("Значение ComboBox'a 302");
cell_CB2.Items.AddRange("Значение ComboBox'a 303");
break;
}
return cell_CB2;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Например, из вне приходит какой-то объект неизвестного типа
У стандартного ComboBox есть свойство SelectedValue, которое можно привести к привязанному типу и получить значение из поля, которое не отображается...