Laden...

"DataGridView_Loaded" wird doppelt ausgeführt

Erstellt von TheLion092 vor 4 Jahren Letzter Beitrag vor 4 Jahren 804 Views
T
TheLion092 Themenstarter:in
17 Beiträge seit 2018
vor 4 Jahren
"DataGridView_Loaded" wird doppelt ausgeführt

Hallo,

ich habe eine kleine Anwendung mit einem DataGridView. Mit "DataGridView_Loaded" lege ich die Spaltennamen fest, lege die Spaltenbreiten fest und lege die ItemSource fest. FUnktioniert auch alles super. Wenn ich die Anwendung jetzt am laufen habe, ich in Windows den Benutzer wechsel und dann wieder zurück wechsel, dann wird nach dem Laden des Desktops im Programm "Loaded" erneut ausgeführt. Das macht sich bemerkbar, da das Programm dann abstürzt mit der Begründung, es gebe bereits eine Spalte mit dem Namen. Was kann ich tun ? "Initialized" funktioniert leider nicht, weil ich dann z.B. keine Spaltenbreite festlegen kann mit der Begründung

Fehlermeldung:
System.ArgumentOutOfRangeException: "Der Index lag außerhalb des Bereichs. Er darf nicht negativ und kleiner als die Sammlung sein.
Parametername: index"

Liebe Grüße

16.806 Beiträge seit 2008
vor 4 Jahren

Generell: Du solltest in WPF unbedingt mit MVVM arbeiten.Ansonsten wirst Du von Workaround zu Workaround stolpern.
[Artikel] MVVM und DataBinding

Die Ursache dieses Exceptiontyps kannst Du immer über den Debugger herausfinden:
[Artikel] Debugger: Wie verwende ich den von Visual Studio?

Aber: verwende MVVM und es kann gar nicht zu dem Fehler kommen.

5.657 Beiträge seit 2006
vor 4 Jahren

Die Fehlermeldungen sind doch recht verständlich. Wenn es bereits den Eintrag gibt, den du hinzufügen willst, dann mußt du halt zuerst überprüfen ob es bereits Einträge gibt. Und bei der ArgumentOutOfRangeException mußt du schauen, woher der falsche Index kommt.

Ansonsten das, was Abt sagt.

Weeks of programming can save you hours of planning