Как правильно изменить список элементов внутри только одного datagridviewcomboboxcell ?
Привет,
Я пишу простое приложение, которое использует элемент управления DataGridView с ComboBoxColumn.
Я использовал этот метод для изменения списка элементов внутри одной ячейки ComboBoxColumn :
void Fill_Location() { DataGridViewComboBoxCell Location = (DataGridViewComboBoxCell) DGV.Rows[0].Cells[1]; Location.Items.Clear(); string a ="hello"; Location.Items.Add(a); }
При выполнении этого метода возникает диалоговое окно DataGridView Default Error с сообщением:
Следующее исключение в datagridview
Система.ArgumentException : значение DataGridViewComboBoxCell недопустимо.
Чтобы заменить это диалоговое окно по умолчанию, пожалуйста, обработайте событие DataError.
Поэтому я назначил DGV этот обработчик событий DataError :
void DGV_DataError(object sender, DataGridViewDataErrorEventArgs e) { MessageBox.Show(e.Context.ToString()); }
После этого при выполнении метод вызывает обработчик события DataGridView DataError со следующим сообщением : форматирование, PreferredSize.
С тех пор я не знаю, как устранить вышеуказанную ошибку,
Я изменил код для обработчика событий DataError на :
void DGV_DataError(object sender, DataGridViewDataErrorEventArgs e) { if(e.Context== DataGridViewDataErrorContexts.Formatting) e.ThrowException = false; }
Теперь при выполнении метода Fill_Location() список элементов внутри ComboBoxCell изменяется, как и ожидалось, и нет никакого сообщения об ошибке.
Правильно ли это использование обработчика событий DataError для решения такого рода проблем,
или могут быть какие-то другие скрытые проблемы, которые в настоящее время не очевидны.
Программа написана для .Net 4.0
Всего наилучшего,
Желько Перич
Что я уже пробовал:
Я искал в Интернете аналогичные проблемы с DataGridViewComboBox и изменением списка элементов только в одной ячейке. Есть сообщения об одних и тех же сообщениях об ошибках, но адекватного решения нет.