У меня есть datagridview и три текстовых поля. Когда возникает событие сетки SelectionChanged
, я получаю данные из сетки и записываю свойства. Проблема возникает, когда вы не нажимаете на столбец, имеет значение.Сообщение об ошибке «Невозможно лить объект типа»
private void _artistGridSelectionChanged(object sender, EventArgs e)
{
int rowIndex = ArtistListGrid.CurrentCell.RowIndex;
int cellIndex = ArtistListGrid.CurrentCell.ColumnIndex;
this.ID = ((DataRowView)BSource.Current).Row.Field<Int32>("ID");
this.Name = ((DataRowView)BSource.Current).Row.Field<string>("Firstname");
this.Lastname = ((DataRowView)BSource.Current).Row.Field<string>("Lastname");
this.Nickname = ((DataRowView)BSource.Current).Row.Field<string>("Nickname");
}
Как это исправить:
Текст на скриншоте: Невозможно привести объект 'System.Windows.Forms.DataGridView' типа к типу «System.Windows.Forms .DataRowView.
Как насчет просто литье к чему это предлагается? –
Ну, вы должны, вероятно, проверить, является ли «BSource.Current' * * *« DataRowView »первым, например. с оператором 'as'. (Я бы попытался избежать повторения тоже) ... –
Сначала добавьте подтверждение, сначала проверьте нулевые значения, а затем отправьте его на обработку –