2016-07-21 3 views
0

У меня есть 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"); 
} 

Как это исправить:

enter image description here

Текст на скриншоте: Невозможно привести объект 'System.Windows.Forms.DataGridView' типа к типу «System.Windows.Forms .DataRowView.

+2

Как насчет просто литье к чему это предлагается? –

+2

Ну, вы должны, вероятно, проверить, является ли «BSource.Current' * * *« DataRowView »первым, например. с оператором 'as'. (Я бы попытался избежать повторения тоже) ... –

+0

Сначала добавьте подтверждение, сначала проверьте нулевые значения, а затем отправьте его на обработку –

ответ

Смежные вопросы