2016-07-21 37 views
0

Ich habe Datagridview und drei Textfeld. Wenn das Gitterereignis SelectionChanged verursacht wird, erhalte ich Daten vom Gitter und schreibe Eigenschaften. Das Problem tritt auf, wenn Sie nicht auf die Spalte klicken, die den Wert hat.Fehlermeldung "Kann Objekt des Typs nicht umwandeln"

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"); 
} 

Wie dieses Problem zu beheben:

enter image description here

Text aus dem Screenshot: Konnte nicht das Objekt des Typs 'System.Windows.Forms.DataGridView' werfen ‚System.Windows.Forms eingeben .DataRowView '.

+2

Wie wäre es einfach Gießen zu was wird vorgeschlagen? –

+2

Nun sollten Sie wahrscheinlich prüfen, ob 'BSource.Current' * zuerst * DataRowView' ist, z. mit dem 'as'-Operator. (Ich würde versuchen, auch alle Wiederholungen zu vermeiden ...) –

+0

Fügen Sie die Validierung zuerst hinzu, überprüfen Sie zuerst die Nullwerte und senden Sie sie dann an den Prozess –

Antwort

Verwandte Themen