Ich erhalte die folgende Nachricht, wenn ich versuche, das letzte Element in einem Datagridview zu entfernen.InvalidOperationException auf Databinding beim Entfernen des letzten Elements in der Liste
DataBinding kann keine Zeile in der Liste finden, die für alle Bindungen geeignet ist.
Ich habe meine verbindliche Einrichtung wie folgt.
ExtendedBindingList<MyClass> bl = new ExtendedBindingList<MyClass>(GetDataFromDB());
BindingSource bs = new BindingSource();
bs.DataSource = bl;
dgv.DataSource = bs;
ExtendedBindingList ist nur etwas Einfaches ich zusammen Sortierung und Filterung zu implementieren warf und einige Grundzustand Ausdauer. dgv ist das DataGridView. GetDataFromDB gibt eine Liste von MyClass zurück.
Das Problem entsteht erst, wenn ich versuche, das letzte Element aus dem Datagridview zu entfernen Verwendung:
bs.RemoveCurrent();
, die zu allen anderen Zeiten funktionieren. Mein einziger Hinweis für eine Lösung ist, alle Bindungen zu entfernen und sie erneut anzuwenden, aber das scheint keine ideale Lösung zu sein.
BEARBEITEN Die Ausnahme wird nur ausgelöst, nachdem die BindingList den letzten Eintrag erfolgreich entfernt hat. Es wird in externen Code geworfen, so dass ich nicht genau sagen kann, was es wirft.
Also, hier bin ich und bitte SO um etwas Hilfe :).
Vielen Dank im Voraus, Justin
Ich benutze ein DataGridView nicht ein Raster, aber das ist im Wesentlichen, was ich auch verwende. Es funktioniert jedes Mal, außer wenn ich den letzten Gegenstand entferne. –
Es ist eine DataGridView in meinem Beispiel. BindingSource wird auch verwendet, aber ich lösche von BindingListEx, nicht von BindingSource. Probieren Sie diesen Code einfach aus. Ich denke auch, dass Ihr Problem irgendwie auf die letzte Zeile bezogen ist, die für das schnelle Hinzufügen von Zeilen (AllowUserAddNewRows = true) ist. Ich erinnere mich, dass ich ein Problem damit hatte und entschied mich dann, es auszuschalten (setze AllowUserAddNewRows auf false). – nightcoder
Hmm, ich werde es versuchen. –