Значение 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");
// ...
Другие вопросы по тегам