Недопустимое значение DataGridViewComboBox.

Задний план

Я пытаюсь настроить столбец на моем DGV как поле со списком. Я добавил все столбцы в gridview в дизайнере, так что осталось только привязать их к набору данных.

Тип данных столбца 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"];

person KingCundy    schedule 17.01.2016    source источник
comment
Что такое DataType вашей таблицы JobList, статус столбца?   -  person Ivan Stoev    schedule 17.01.2016
comment
@GrantWinney добавил оскорбительную строку в вопрос.   -  person KingCundy    schedule 17.01.2016
comment
@IvanStoev тип данных Varchar.   -  person KingCundy    schedule 17.01.2016
comment
JoblistDataSet.Tables["Joblist"].Columns["Status"].DataType не может быть varchar. Вопрос был в том, является ли это string, int и т. д. Судя по вашему ответу, это string.   -  person Ivan Stoev    schedule 17.01.2016


Ответы (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");
// ...
person Ivan Stoev    schedule 17.01.2016