Freigeben über


System.Collections.ObjectModel.ObservableCollection<T> Klasse

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die ObservableCollection<T> Klasse stellt eine dynamische Datensammlung dar, die Benachrichtigungen bereitstellt, wenn Elemente hinzugefügt oder entfernt werden oder wenn die gesamte Liste aktualisiert wird.

In vielen Fällen handelt es sich bei den Daten, mit denen Sie arbeiten, um eine Sammlung von Objekten. Ein gängiges Szenario in der Datenbindung ist beispielsweise die Verwendung eines ItemsControl wie ein ListBox, ListView, oder TreeView zum Anzeigen einer Sammlung von Datensätzen.

Sie können über jede Sammlung enumerieren, die die IEnumerable-Schnittstelle implementiert. Um dynamische Bindungen einzurichten, damit die Benutzeroberfläche nach Einfügungen oder Löschungen in der Sammlung automatisch aktualisiert wird, muss die Sammlung die INotifyCollectionChanged-Schnittstelle implementieren. Diese Schnittstelle macht das CollectionChanged Ereignis verfügbar, ein Ereignis, das bei jeder Änderung der zugrunde liegenden Auflistung ausgelöst werden soll.

Die ObservableCollection<T> Klasse ist ein Datentyp, der die INotifyCollectionChanged Schnittstelle implementiert.

Bevor Sie eine eigene Sammlung implementieren, sollten Sie erwägen, ObservableCollection<T> oder eine der bestehenden Sammlungsklassen wie List<T>, Collection<T> und BindingList<T> zu verwenden. Wenn Sie ein fortgeschrittenes Szenario haben und Ihre eigene Kollektion implementieren möchten, sollten Sie die Verwendung von IList in Betracht ziehen, die eine nicht generische Auflistung von Objekten bereitstellt, auf die einzeln nach Index zugegriffen werden kann. Die Implementierung IList bietet die beste Leistung mit der Datenbindung-Engine.

Hinweis

Um die Übertragung von Datenwerten von Bindungsquellobjekten an Bindungsziele vollständig zu unterstützen, müssen jedes Objekt in Ihrer Auflistung, das bindbare Eigenschaften unterstützt, einen geeigneten Benachrichtigungsmechanismus für Eigenschaftsänderung implementieren, z. B. die INotifyPropertyChanged Schnittstelle.

Weitere Informationen finden Sie unter "Binden an Sammlungen" in der Datenbindungsübersicht.

Hinweise zur XAML-Verwendung

ObservableCollection<T> kann als XAML-Objektelement in Windows Presentation Foundation (WPF) in den Versionen 3.0 und 3.5 verwendet werden. Die Nutzung hat jedoch erhebliche Einschränkungen.

  • ObservableCollection<T> muss das Stammelement sein, da das x:TypeArguments Attribut, das zum Angeben des eingeschränkten Typs des Generischen ObservableCollection<T> verwendet werden muss, nur für das Objektelement für das Stammelement unterstützt wird.

  • Sie müssen ein x:Class Attribut deklarieren (dies bedeutet, dass die Buildaktion für diese XAML-Datei oder eine andere Buildaktion sein Page muss, die den XAML-Code kompiliert).

  • ObservableCollection<T> befindet sich in einem Namespace und einer Assembly, die anfänglich nicht dem Standard-XML-Namespace zugeordnet ist. Sie müssen ein Präfix für den Namespace und die Assembly zuordnen und dieses Präfix dann für das Objektelement-Tag für ObservableCollection<T> verwenden.

Eine einfachere Möglichkeit, die ObservableCollection<T>-Funktionen aus XAML in einer Anwendung zu nutzen, besteht darin, eine eigene nicht-generische benutzerdefinierte Auflistungsklasse zu deklarieren, die von ObservableCollection<T> abgeleitet wird und auf einen bestimmten Typ eingeschränkt ist. Ordnen Sie dann die Assembly zu, die diese Klasse enthält, und referenzieren Sie sie als Objektelement in Ihrer XAML.