Ich versuche eine ListBox.DataSource = ObservableCollection zu verwenden, aber ich kann nicht herausfinden, wie die Listbox automatisch aktualisiert wird, wenn meine OC aktualisiert wird. Ich kann das CollectionChanged-Ereignis im OC haken, aber was muss ich tun, damit das Listenfeld aktualisiert wird?C# ListBox ObservableCollection <T>
Antwort
Basierend auf Ihrer Frage, es klingt wie Sie versuchen, ObservableCollection<T>
in einer WinForms-Anwendung zu verwenden.
ObservableCollection<T>
wird hauptsächlich in WPF-Entwicklung verwendet. In WinForms wird das Steuerelement automatisch aktualisiert, sobald sich die Sammlung ändert, um Ihre Sammlung zu implementieren IBindingList
. Die einfachste Lösung ist die Verwendung von BindingList<T>
anstelle von ObservableCollection<T>
. Danach sollten Ihre Steuerelemente aktualisiert werden, wenn sich die Sammlung ändert.
Perfekt, das ist was ich gesucht habe! – WedTM
Oder warten Sie, bis .NET 4.0 herauskommt; 'ObservableCollection
WinForms oder WPF? – McAden
WinForms, aber ich habe die WindowsBase-Assembly eingeschlossen, die ObservableCollection enthält. Ist das nicht der richtige Weg? – WedTM
Winforms wird von IBindingList benachrichtigt, wie Justin Niessner unten beschrieben hat. – McAden