ListBox wirft Exception (schwer)

Rippa_HD

Mitglied
Also das Problem ist nicht so einfach wie es sich zuerst anhört . .

Ich hab eine Listbox die ich über DataSource und DataMember aus einer ArrayList fülle. Man hat die Möglichkeit die aktuelle Auswahl aus der Listbox zu löschen dann wird das betreffende Element aus der ArrayList gelöscht und anschließend der DataSource für die ListBox neu gesetzt, damit diese sich aktualisiert, danach wähle ich das erste Element aus.

Das Einzige Event an dem ich hänge ist SelectedValueChanged und damit setze ich dann alle DataBindings für das aktuell ausgewählte Element. Das Ganze funktioniert auch prima, aber manchmal fliegt mir eine Exception direkt aus dem Framework um die Ohren :(

Ablauf ist folgender:
- 1 Element wird gelöscht
- Das neue wird ausgewählt
- SelectedValueChanged wird ausgelöst
- Datenbindungen werden für die Auswahl gesetzt
- ArgumentOutOfRangeException wird geworfen

Die Exception tritt auf nachdem die SelectedValueChanged Ereignismethode fertig ist, innerhalb der Methode funktioniert alles . .

Code:
StackTrace von der Exception:
StackTrace von der Exception:
at System.Collections.ArrayList.get_Item(Int32 index)   at 
System.Windows.Forms.CurrencyManager.EndCurrentEdit()   at 
System.Windows.Forms.CurrencyManager.ChangeRecordState(Int32 newPosition, Boolean validating, Boolean endCurrentEdit, Boolean firePositionChange, Boolean pullData)   at 
System.Windows.Forms.CurrencyManager.set_Position(Int32 value)   at 
System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e)   at 
System.Windows.Forms.ListBox.set_SelectedIndex(Int32 value)   at 
System.Windows.Forms.Control.OnClick(EventArgs e)   at 
System.Windows.Forms.Button.OnClick(EventArgs e)   at 
System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)   at 
System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)   at System.Windows.Forms.Control.WndProc(Message& m)   at System.Windows.Forms.ButtonBase.WndProc(Message& m)   at 
System.Windows.Forms.Button.WndProc(Message& m)   at 
System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)   at 
System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)   at 
System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)   at 
System.Windows.Forms.ComponentManager.System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)   at 
System.Windows.Forms.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)   at 
System.Windows.Forms.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)   at 
System.Windows.Forms.Application.Run(Form mainForm)   at 
Gef.Tools.SisPara.MainGui.Main() in c:\\devsrc\\develop\\dotnet\\gef\\tools\\sispara\\maingui.cs:line 329"

Wie gesagt die wird nicht immer geworfen und ich komm einfach nicht dahinter woran es liegen könnte :(

Evtl ist relevant: Ich serialisiere und deserialisiere die ArrayList per XML und ich hab das Gefühl der Fehler tritt nur bei ArrayLists auf die deserialisiert wurden, nicht bei solchen die ich gerade erstellt hab . . aber das kann auch nur Einbildung sein :(

Bin dankbar für jede/n Idee/Hinweis
 
Zuletzt bearbeitet:
Das Problem tritt definitiv bei der ArrayList auf und zwar wenn du dir ein Item holst. Vielleicht solltest du hier mal durchdebuggen und gucken was du so zurückbekommst und ob das das ist, was zurückkommen soll. Wenn nicht, dann hast du schon einen Ansatzpunkt ...
 

Neue Beiträge

Zurück