Значение DataGridViewComboBox недопустимо
Фон
Я пытаюсь установить столбец на моем DGV в виде списка. Я добавил все столбцы в сетку в конструкторе, поэтому осталось только связать их с набором данных.
Тип данных столбца Status - varchar.
Вопрос
Однако я продолжаю получать очень бесполезное сообщение об ошибке во время выполнения. Я делаю что-то неправильно?
DataGridViewComboBox Значение недопустимо.
Вышеуказанная ошибка возникает при установке источника данных dgv.
dataGridView1.DataSource = JoblistDataSet.Tables["Joblist"];
Мой код
DataGridViewComboBoxColumn Column = (DataGridViewComboBoxColumn)dataGridView1.Columns["Status"];
Column.DataPropertyName = "Status";
DataGridViewComboBoxCell cbCell = (DataGridViewComboBoxCell)dataGridView1.Rows[0].Cells["Status"];
cbCell.Items.Add("New");
cbCell.Items.Add("Hold");
cbCell.Items.Add("Remove");
dataGridView1.DataSource = JoblistDataSet.Tables["Joblist"];
1 ответ
Решение
Я думаю, что проблема в том, что вы заполняете DataGridViewComboBoxCell.Items для индекса строки 0 вместо DataGridViewComboBoxColumn.Items, который применяется для всех строк (надеюсь, вы заметили Cell
против Column
).
Вместо этого используйте что-то подобное
var statusColumn = (DataGridViewComboBoxColumn)dataGridView1.Columns["Status"];
statusColumn.DataPropertyName = "Status";
statusColumn.Items.Add("New");
statusColumn.Items.Add("Hold");
statusColumn.Items.Add("Remove");
// ...