Wenn du Removed in den EventArgs mitgibst und den Index, kann der Abonnent entsprechend verfahren. Threading spielt hier eher eine nebensächliche Rolle. Wenn du ein Item entfernst, änderst du die Liste. D.h. du möchtest auf die Änderung der Liste reagieren, nicht aber auf den Aufruf, die Liste zu ändern.
Die GUI bindet sich selbst an die Werte, die quasi spezifisch für dieses eine spezifische Control sind. ObservableCollection, etc. sind unabhängig vom Control. Das sind zwei völlig verschiedene Arten der, naja, Bindung. Während die ObservableCollection von außen an das Control herangetragen wird, sind bei den Listen-Control-Collections ohne Datenbindung die Items und die Itemlisten direkt mit dem Control verbunden und gehören wirklich diesem einen Control. Eine ObservableCollection gehört aber eben zu keinem Control, sondern ist vollständig losgelöst davon, da es eben genau die Daten bereitstellt. Wenn du die Property nicht ReadOnly machen würdest, genau dann und nur dann wäre sie unabhängig vom Control.
Events kannst du von mir aus auch deklarieren. Ich würde es nicht machen und wenn, dann würde ich sie auf Friend setzen.
Gruß
~blaze~
Die GUI bindet sich selbst an die Werte, die quasi spezifisch für dieses eine spezifische Control sind. ObservableCollection, etc. sind unabhängig vom Control. Das sind zwei völlig verschiedene Arten der, naja, Bindung. Während die ObservableCollection von außen an das Control herangetragen wird, sind bei den Listen-Control-Collections ohne Datenbindung die Items und die Itemlisten direkt mit dem Control verbunden und gehören wirklich diesem einen Control. Eine ObservableCollection gehört aber eben zu keinem Control, sondern ist vollständig losgelöst davon, da es eben genau die Daten bereitstellt. Wenn du die Property nicht ReadOnly machen würdest, genau dann und nur dann wäre sie unabhängig vom Control.
Events kannst du von mir aus auch deklarieren. Ich würde es nicht machen und wenn, dann würde ich sie auf Friend setzen.
Gruß
~blaze~