У меня есть DataGridView с Binding-Source, связанным с таблицей данных, загруженной из Oracle-Database. (кстати. Я не думаю, что соединение с базой данных могло бы вызвать это)
У меня также есть DataGridViewComboBoxColumn, привязанный к классу лиц (только «имеет» ID и имя), поэтому я могу отображать / разрешать редактировать имя вместо ID. Моя проблема сейчас в том, что после завершения привязки данных c # автоматически «выбирает» первую ячейку DGV - см. Прикрепленное изображение.
![alt text](https://i.stack.imgur.com/3US5Q.jpg)
Я также должен использовать этот маленький кусочек кода для обеспечения целостности данных:
private void _table_ColumnChanging(object sender, DataColumnChangeEventArgs e)
{
if (e.Column == _table.Columns["NEEDED_ID"])
{
if (e.ProposedValue == null)
{
e.ProposedValue = System.DBNull.Value;
}
}
}
Теперь использование этой _table.GetChanges () всегда возвращает первую строку DGV как «измененную», но значение на самом деле не изменяется - это всего лишь DBNull
вместо null
. Можно ли как-то избежать автоматического выбора первой ячейки или как избежать этого поведения?
РЕДАКТИРОВАТЬ: Тем временем я обнаружил, что изменение первого столбца на что-то не редактируемое устраняет эту проблему. Но это не более чем обходной путь. Я был бы очень признателен, чтобы получить рабочее решение для этого.
РЕДАКТИРОВАТЬ 2: У меня также есть пустой объект "сверху" ComboBox-DataSource
DtoPerson blankPerson = new DtoPerson();
blankPerson.Name = String.Empty;
blankPerson.PersonRollenId = -1;
personList.Add(blankPerson);