Немного опоздал на вечеринку, но я думаю, что это все еще может быть полезно для других.В моем случае я получил эту ошибку, потому что я добавил комбинированный список на основе перечисления, например:
// Combo
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.DataSource = Enum.GetValues(typeof(PhoneNumberType));
combo.DataPropertyName = "PhoneNumberType";
combo.Name = "PhoneNumberType";
phoneNumberGrid.Columns.Add(combo);
Теперь, когда DataGridView создал новую (пустую) строку, это пустое значение не может быть сопоставленополе со списком.Поэтому вместо того, чтобы игнорировать ошибку, я устанавливаю значение по умолчанию для поля со списком.Я добавил событие DefaultValuesNeeded
и там просто установил значение для одного из элементов из перечисления.Вот так:
private void phoneNumberGrid_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
// Prevent System.ArgumentException: DataGridViewComboBoxCell value is not valid
e.Row.Cells["PhoneNumberType"].Value = PhoneNumberType.Private;
}
.. и исключение ушло.