ObservableCollection<T> Klasse

Definition

Stellt eine dynamische Datenauflistung dar, die Benachrichtigungen bereitstellt, wenn Elemente hinzugefügt oder entfernt werden oder wenn die gesamte Liste aktualisiert wird.Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed.

generic <typename T>
public ref class ObservableCollection : System::Collections::ObjectModel::Collection<T>, System::Collections::Specialized::INotifyCollectionChanged, System::ComponentModel::INotifyPropertyChanged
[System.Serializable]
public class ObservableCollection<T> : System.Collections.ObjectModel.Collection<T>, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.INotifyPropertyChanged
type ObservableCollection<'T> = class
    inherit Collection<'T>
    interface INotifyCollectionChanged
    interface INotifyPropertyChanged
Public Class ObservableCollection(Of T)
Inherits Collection(Of T)
Implements INotifyCollectionChanged, INotifyPropertyChanged

Typparameter

T

Der Typ der Elemente in der Auflistung.The type of elements in the collection.

Vererbung
ObservableCollection<T>
Abgeleitet
Attribute
Implementiert

Hinweise

In vielen Fällen sind die Daten, mit denen Sie arbeiten, eine Auflistung von-Objekten.In many cases the data that you work with is a collection of objects. Ein häufiges Szenario bei der Datenbindung ist ItemsControl beispielsweise die Verwendung ListBoxeiner, ListViewoder TreeView , um eine Auflistung von Datensätzen anzuzeigen.For example, a common scenario in data binding is to use an ItemsControl such as a ListBox, ListView, or TreeView to display a collection of records.

Sie können jede Auflistung auflisten, die die IEnumerable -Schnittstelle implementiert.You can enumerate over any collection that implements the IEnumerable interface. Wenn Sie jedoch dynamische Bindungen einrichten möchten, damit die UIUI Einfügungen oder Löschungen in der Auflistung automatisch aktualisieren, muss die-Auflistung die INotifyCollectionChanged -Schnittstelle implementieren.However, to set up dynamic bindings so that insertions or deletions in the collection update the UIUI automatically, the collection must implement the INotifyCollectionChanged interface. Diese Schnittstelle macht CollectionChanged das-Ereignis verfügbar, ein Ereignis, das bei jeder Änderung der zugrunde liegenden Auflistung ausgelöst werden sollte.This interface exposes the CollectionChanged event, an event that should be raised whenever the underlying collection changes.

WPFWPFstellt die ObservableCollection<T> -Klasse bereit, die eine integrierte Implementierung einer Datensammlung ist, die die INotifyCollectionChanged -Schnittstelle implementiert.provides the ObservableCollection<T> class, which is a built-in implementation of a data collection that implements the INotifyCollectionChanged interface.

Bevor Sie eine eigene Auflistung implementieren, erwägen Sie ObservableCollection<T> oder einer vorhandenen Sammlung Klassen, z. B. List<T>, Collection<T>, und BindingList<T>, a.Before implementing your own collection, consider using ObservableCollection<T> or one of the existing collection classes, such as List<T>, Collection<T>, and BindingList<T>, among many others. Wenn Sie ein erweitertes Szenario haben und eine eigene Auflistung implementieren möchten, sollten Sie verwenden IList, das eine nicht generische Auflistung von Objekten bereitstellt, auf die einzeln über einen Index zugegriffen werden kann.If you have an advanced scenario and want to implement your own collection, consider using IList, which provides a non-generic collection of objects that can be individually accessed by index. Durch IList die Implementierung von wird die beste Leistung mit der Datenbindungs-Engine erzielt.Implementing IList provides the best performance with the data binding engine.

Hinweis

Um die Übertragung von Datenwerten aus Bindungs Quell Objekten an Bindungs Ziele vollständig zu unterstützen, muss jedes Objekt in der Auflistung, das bindbare Eigenschaften unterstützt, einen INotifyPropertyChanged geeigneten Benachrichtigungs Mechanismus für eine Eigenschaft implementieren, z.b. berfläche.To fully support transferring data values from binding source objects to binding targets, each object in your collection that supports bindable properties must implement an appropriate property changed notification mechanism such as the INotifyPropertyChanged interface.

Weitere Informationen finden Sie unter "binden an Auflistungen" in Übersicht über die Datenbindung.For more information, see "Binding to Collections" in Data Binding Overview.

Hinweise zur Verwendung von XAMLNotes on XAML Usage

ObservableCollection<T>kann in, in den Versionen 3,0 und 3,5, als Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)XAML-Objekt Element in verwendet werden.ObservableCollection<T> can be used as a XAML object element in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF), in versions 3.0 and 3.5. Allerdings gelten für die Verwendung erhebliche Einschränkungen.However, the usage has substantial limitations.

  • ObservableCollection<T>muss das Stamm Element sein, da das x:TypeArguments Attribut, das zum Angeben des eingeschränkten Typs des generischen ObservableCollection<T> Typs verwendet werden muss, nur für das Object-Element für das root-Element unterstützt wird.ObservableCollection<T> must be the root element, because the x:TypeArguments attribute that must be used to specify the constrained type of the generic ObservableCollection<T> is only supported on the object element for the root element.

  • Sie müssen ein x:Class Attribut deklarieren (was dazu führt, dass die Buildaktion für diese XAML-Datei oder eine andere Buildaktion, die den XAML-Code kompiliert) sein Page muss.You must declare an x:Class attribute (which entails that the build action for this XAML file must be Page or some other build action that compiles the XAML).

  • ObservableCollection<T>befindet sich in einem Namespace und einer Assembly, die nicht anfänglich dem XML-Standard Namespace zugeordnet sind.ObservableCollection<T> is in a namespace and assembly that are not initially mapped to the default XML namespace. Sie müssen ein Präfix für den Namespace und die Assembly zuordnen und dieses Präfix dann für das Objekt Element- ObservableCollection<T>Tag für verwenden.You must map a prefix for the namespace and assembly, and then use that prefix on the object element tag for ObservableCollection<T>.

Eine einfachere Möglichkeit, die Funktionen ObservableCollection<T> von XAML in einer Anwendung zu verwenden, besteht darin, eine eigene nicht generische benutzerdefinierte Auflistungs ObservableCollection<T>Klasse zu deklarieren, die von abgeleitet wird, und Sie auf einen bestimmten Typ einzuschränken.A more straightforward way to use ObservableCollection<T> capabilities from XAML in an application is to declare your own non-generic custom collection class that derives from ObservableCollection<T>, and constrains it to a specific type. Ordnen Sie dann die Assembly zu, die diese Klasse enthält, und verweisen Sie darauf als Objekt Element in Ihrem XAML-Code.Then map the assembly that contains this class, and reference it as an object element in your XAML.

Konstruktoren

ObservableCollection<T>()

Initialisiert eine neue Instanz der ObservableCollection<T>-Klasse.Initializes a new instance of the ObservableCollection<T> class.

ObservableCollection<T>(IEnumerable<T>)

Initialisiert eine neue Instanz der ObservableCollection<T>-Klasse, die aus der angegebenen Auflistung kopierte Elemente enthält.Initializes a new instance of the ObservableCollection<T> class that contains elements copied from the specified collection.

ObservableCollection<T>(List<T>)

Initialisiert eine neue Instanz der ObservableCollection<T>-Klasse, die aus der angegebenen Liste kopierte Elemente enthält.Initializes a new instance of the ObservableCollection<T> class that contains elements copied from the specified list.

Eigenschaften

Count

Ruft die Anzahl der Elemente ab, die tatsächlich in Collection<T> enthalten sind.Gets the number of elements actually contained in the Collection<T>.

(Geerbt von Collection<T>)
Item[Int32]

Ruft das Element am angegebenen Index ab oder legt dieses fest.Gets or sets the element at the specified index.

(Geerbt von Collection<T>)
Items

Ruft den IList<T>-Wrapper ab, der Collection<T> einbindet.Gets a IList<T> wrapper around the Collection<T>.

(Geerbt von Collection<T>)

Methoden

Add(T)

Fügt am Ende der Collection<T> ein Objekt hinzu.Adds an object to the end of the Collection<T>.

(Geerbt von Collection<T>)
BlockReentrancy()

Verweigert das Ändern dieser Auflistung durch wiedereintretende Versuche.Disallows reentrant attempts to change this collection.

CheckReentrancy()

Sucht wiedereintretende Versuche, diese Auflistung zu ändern.Checks for reentrant attempts to change this collection.

Clear()

Entfernt alle Elemente aus der Collection<T>.Removes all elements from the Collection<T>.

(Geerbt von Collection<T>)
ClearItems()

Entfernt alle Elemente aus der Auflistung.Removes all items from the collection.

Contains(T)

Bestimmt, ob sich ein Element in Collection<T> befindet.Determines whether an element is in the Collection<T>.

(Geerbt von Collection<T>)
CopyTo(T[], Int32)

Kopiert die gesamte Collection<T>-Instanz in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays.Copies the entire Collection<T> to a compatible one-dimensional Array, starting at the specified index of the target array.

(Geerbt von Collection<T>)
Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, der die Collection<T> durchläuft.Returns an enumerator that iterates through the Collection<T>.

(Geerbt von Collection<T>)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
IndexOf(T)

Sucht nach dem angegebenen Objekt und gibt den nullbasierten Index des ersten Vorkommens innerhalb der gesamten Collection<T> zurück.Searches for the specified object and returns the zero-based index of the first occurrence within the entire Collection<T>.

(Geerbt von Collection<T>)
Insert(Int32, T)

Fügt am angegebenen Index ein Element in die Collection<T> ein.Inserts an element into the Collection<T> at the specified index.

(Geerbt von Collection<T>)
InsertItem(Int32, T)

Fügt ein Element am angegebenen Index in die Auflistung ein.Inserts an item into the collection at the specified index.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
Move(Int32, Int32)

Verschiebt das Element am angegebenen Index an eine neue Position in der Auflistung.Moves the item at the specified index to a new location in the collection.

MoveItem(Int32, Int32)

Verschiebt das Element am angegebenen Index an eine neue Position in der Auflistung.Moves the item at the specified index to a new location in the collection.

OnCollectionChanged(NotifyCollectionChangedEventArgs)

Löst das CollectionChanged-Ereignis mit den angegebenen Argumenten aus.Raises the CollectionChanged event with the provided arguments.

OnPropertyChanged(PropertyChangedEventArgs)

Löst das PropertyChanged-Ereignis mit den angegebenen Argumenten aus.Raises the PropertyChanged event with the provided arguments.

Remove(T)

Entfernt das erste Vorkommen eines angegebenen Objekts aus der Collection<T>.Removes the first occurrence of a specific object from the Collection<T>.

(Geerbt von Collection<T>)
RemoveAt(Int32)

Entfernt das Element am angegebenen Index aus der Collection<T>.Removes the element at the specified index of the Collection<T>.

(Geerbt von Collection<T>)
RemoveItem(Int32)

Entfernt das Element am angegebenen Index aus der Auflistung.Removes the item at the specified index of the collection.

SetItem(Int32, T)

Ersetzt das Element am angegebenen Index.Replaces the element at the specified index.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Ereignisse

CollectionChanged

Tritt auf, wenn ein Element hinzugefügt, entfernt, geändert, verschoben oder die gesamte Liste aktualisiert wird.Occurs when an item is added, removed, changed, moved, or the entire list is refreshed.

PropertyChanged

Tritt ein, wenn sich ein Eigenschaftswert ändert.Occurs when a property value changes.

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die Elemente der ICollection in ein Array, beginnend bei einem bestimmten Array-Index.Copies the elements of the ICollection to an Array, starting at a particular Array index.

(Geerbt von Collection<T>)
ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ICollection synchronisiert (threadsicher) ist.Gets a value indicating whether access to the ICollection is synchronized (thread safe).

(Geerbt von Collection<T>)
ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf ICollection synchronisiert werden kann.Gets an object that can be used to synchronize access to the ICollection.

(Geerbt von Collection<T>)
ICollection<T>.IsReadOnly

Ruft einen Wert ab, der angibt, ob das ICollection<T> schreibgeschützt ist.Gets a value indicating whether the ICollection<T> is read-only.

(Geerbt von Collection<T>)
IEnumerable.GetEnumerator()

Gibt einen Enumerator zurück, der eine Auflistung durchläuft.Returns an enumerator that iterates through a collection.

(Geerbt von Collection<T>)
IList.Add(Object)

Fügt der IList ein Element hinzu.Adds an item to the IList.

(Geerbt von Collection<T>)
IList.Contains(Object)

Ermittelt, ob die IList einen bestimmten Wert enthält.Determines whether the IList contains a specific value.

(Geerbt von Collection<T>)
IList.IndexOf(Object)

Bestimmt den Index eines bestimmten Elements in der IList.Determines the index of a specific item in the IList.

(Geerbt von Collection<T>)
IList.Insert(Int32, Object)

Fügt ein Element am angegebenen Index in die IList ein.Inserts an item into the IList at the specified index.

(Geerbt von Collection<T>)
IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob das IList eine feste Größe aufweist.Gets a value indicating whether the IList has a fixed size.

(Geerbt von Collection<T>)
IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob das IList schreibgeschützt ist.Gets a value indicating whether the IList is read-only.

(Geerbt von Collection<T>)
IList.Item[Int32]

Ruft das Element am angegebenen Index ab oder legt dieses fest.Gets or sets the element at the specified index.

(Geerbt von Collection<T>)
IList.Remove(Object)

Entfernt das erste Vorkommen eines angegebenen Objekts aus der IList.Removes the first occurrence of a specific object from the IList.

(Geerbt von Collection<T>)
INotifyPropertyChanged.PropertyChanged

Tritt ein, wenn sich ein Eigenschaftswert ändert.Occurs when a property value changes.

Erweiterungsmethoden

CopyToDataTable<T>(IEnumerable<T>)

Gibt eine DataTable zurück, die Kopien der DataRow-Objekte enthält, wenn ein IEnumerable<T>-Eingabeobjekt vorhanden ist, bei dem der generische Parameter T den Wert DataRow hat.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Kopiert DataRow-Objekte in die angegebene DataTable, bei einem IEnumerable<T>-Eingabeobjekt, bei dem der generische Parameter T den Wert DataRow aufweist.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Kopiert DataRow-Objekte in die angegebene DataTable, bei einem IEnumerable<T>-Eingabeobjekt, bei dem der generische Parameter T den Wert DataRow aufweist.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

Gibt eine Auflistung von Elementen zurück, die die übergeordneten Elemente der einzelnen Knoten in der Quellauflistung enthält.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName)

Gibt eine gefilterte Auflistung von Elementen zurück, die die übergeordneten Elemente der einzelnen Knoten in der Quellauflistung enthält.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung enthalten.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

Gibt eine Auflistung der Nachfolgerknoten jedes Dokuments und Elements in der Quellauflistung zurück.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

Gibt eine Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName)

Gibt eine gefilterte Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung enthalten.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

Gibt eine Auflistung der untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung zurück.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName)

Gibt eine gefilterte Auflistung der untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung zurück.Returns a filtered collection of the child elements of every element and document in the source collection. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung enthalten.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

Gibt eine in Dokumentreihenfolge sortierte Auflistung von Knoten zurück, die alle Knoten in der Quellauflistung enthält.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

Gibt eine Auflistung der untergeordneten Knoten jedes Dokuments und Elements in der Quellauflistung zurück.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

Entfernt jeden Knoten in der Quellauflistung aus seinem übergeordneten Knoten.Removes every node in the source collection from its parent node.

Gilt für:

Siehe auch