A List<>
ist einfach ein Array zur automatischen Größenänderung von Elementen eines bestimmten Typs mit einigen Hilfsfunktionen (z. B. Sortieren). Es sind nur die Daten, und Sie werden sie wahrscheinlich verwenden, um Operationen für eine Reihe von Objekten in Ihrem Modell auszuführen.
A BindingList<>
ist ein Wrapper um eine typisierte Liste oder eine Sammlung, die die IBindingList
Schnittstelle implementiert . Dies ist eine der Standardschnittstellen, die die bidirektionale Datenbindung unterstützen. Es funktioniert durch Implementieren des ListChanged
Ereignisses, das beim Hinzufügen, Entfernen oder Festlegen von Elementen ausgelöst wird. Gebundene Steuerelemente hören dieses Ereignis ab, um zu wissen, wann ihre Anzeige aktualisiert werden muss.
Wenn Sie die DataSource einer BindingSource auf a setzen List<>
, wird intern eine erstellt BindingList<>
, um Ihre Liste zu verpacken. Möglicherweise möchten Sie Ihre Liste vorab mit einer Liste versehen, BindingList<>
wenn Sie außerhalb der BindingSource darauf zugreifen möchten. Andernfalls ist dies jedoch genauso. Sie können auch von erben BindingList<>
, um beim Ändern von Elementen ein spezielles Verhalten zu implementieren.
IEditableObject
wird von der BindingSource verwaltet. BeginEdit wird für jedes implementierende Objekt aufgerufen, wenn Sie die Daten in einem gebundenen Steuerelement ändern. Sie können dann EndEdit / CancelEdit in der BindingSource aufrufen und es wird an Ihr Objekt weitergeleitet. Wenn Sie in eine andere Zeile wechseln, wird auch EndEdit aufgerufen.
Eine BindingList ermöglicht die bidirektionale Datenbindung mithilfe von Ereignissen. Eine Liste löst keine Ereignisse aus, wenn sich ihre Sammlung ändert.
Ich denke nicht, dass es Ihr spezielles Problem beheben wird.
quelle