2017-08-08 1 views
0

Ich habe derzeit eine WPF-Anwendung mit einem RadGridView-Steuerelement von Telerik. Ich habe einige Spalten mit Daten aus einer Datenbank, während ich drei weitere benutzerdefinierte Spalten habe, die zur Eingabe von Daten dienen. Mein Problem ist jetzt, dass sobald ich Daten in eine Zelle innerhalb einer der Spalten eingebe, wenn ich aus dieser Zelle klicke, die Daten verschwinden. Ich muss meinen Antrag stellen, um diese Änderungen zu begehen, damit das nicht passiert. Ich dachte, ich hätte es richtig codiert mit gridView.CommitEdit(); innerhalb des CellEditEnded-Ereignisses, aber eine Stackoverflow-Ausnahme wird ausgelöst, wenn ich die Daten eingeben und aus der Zelle klicken. Kann mir jemand erklären, warum das so ist und eine mögliche Lösung für dieses Problem? Es fällt mir schwer, online gute Quellen zu finden, die erklären, wie das geht. Unten ist mein Code für das CellEditEnded Ereignis:Telerik RadGridView.CommitEdit() StackOverflow Ausnahme

private void gridView_CellEditEnded(object sender, GridViewCellEditEndedEventArgs e) 
    { 
     if(e.EditAction == GridViewEditAction.Commit) 
     { 
      gridView.CommitEdit(); 
     } 
    } 

Wenn jemand in der Lage ist, mir zu helfen zu verstehen, was ich falsch mache, wäre es sehr zu einem boolean-Flag zu verwenden, geschätzt werden :)

Antwort

0

Sie könnten versuchen, verhindern, dass der Event-Handler die Methode CommitEdit() immer wieder aufruft:

bool handle = true; 
private void gridView_CellEditEnded(object sender, GridViewCellEditEndedEventArgs e) 
{ 
    if (e.EditAction == GridViewEditAction.Commit && handle) 
    { 
     handle = false; 
     gridView.CommitEdit(); 
     handle = true; 
    } 
} 
+0

Das wurde den Fehler glücklicherweise definitiv los. Aber jetzt ist die Bearbeitung nicht festgeschrieben und alles, was ich in eine Zelle hineinzöge, verschwindet, wenn ich darauf klicke, was seltsam ist. Ich werde etwas mehr darüber nachforschen, aber danke für die Antwort! –

Verwandte Themen