DataGridViewComboBox — отображение значения «InActive» в DataGridView

У меня есть DataGridView, который содержит поле со списком (DataGridViewComboBoxColumn). Это поле со списком заполняется набором значений настройки. Эти значения настройки можно деактивировать, чтобы в поле со списком отображались только активные значения, однако существующие записи (записи), в которых используются неактивные значения, все равно должны отображаться.

Я могу успешно перебирать элементы в сетке, и если запись имеет значение, которое больше не активно (т. е. часть элементов DataGridViewComboBoxCell), я просто добавляю его к элементам для этого DataGridViewComboBoxCell.

Проблема:

Я не могу найти место для размещения этого кода, чтобы я не получал страшное «значение DataGridViewComboBoxCell недействительно».

Например, я могу поместить этот код в событие Paint в DataGridView, и сетка будет работать отлично. Никаких проблем с редактированием/обновлением значений, а также проблем с отображением (всегда отображается неактивное значение)... Однако он по-прежнему выдает «Недопустимое значение DataGridViewComboBoxCell». ошибка.

Вопрос:

Где я могу добавить код (или как), чтобы добавить «неактивное» значение после того, как активные значения были добавлены в поле со списком (DataGridViewComboBoxColumn), но до того, как записи будут привязаны, чтобы избежать этой ошибки?


person J.C.    schedule 02.04.2009    source источник


Ответы (1)


Как насчет того, чтобы просто поймать ошибку datagridview и ничего с ней не делать.

void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
   e.Cancel = true;
}

// Add code in user interface
dataGridView1.DataError += 
    new DataGridViewDataErrorEventHandler(dataGridView1_DataError);
person SwDevMan81    schedule 29.04.2009