ObservableCollection<T> ObservableCollection<T> ObservableCollection<T> ObservableCollection<T> Class

Definition

Stellt eine dynamische Datenauflistung dar, die Benachrichtigungen bereitstellt, wenn Elemente hinzugefügt oder entfernt werden bzw. 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
[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>ObservableCollection<T>ObservableCollection<T>ObservableCollection<T>
Abgeleitet
Attribute
SerializableAttribute
Implementiert

Hinweise

In vielen Fällen ist die Daten, die Sie verwenden eine Auflistung von Objekten.In many cases the data that you work with is a collection of objects. Beispielsweise ist ein häufiges Szenario bei der Datenbindung die Verwendung einer ItemsControl wie z. B. eine ListBox, ListView, oder TreeView zum Anzeigen einer Auflistung von Datensätzen.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, die implementiert Auflisten der IEnumerable Schnittstelle.You can enumerate over any collection that implements the IEnumerable interface. Allerdings um dynamische Bindungen einzurichten, sodass einfügungen oder löschungen in der Sammlung aktualisieren die UIUI automatisch die Sammlung implementieren muss die INotifyCollectionChanged Schnittstelle.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 legt die CollectionChanged Ereignis, ein Ereignis, das Änderung die zugrunde liegenden Auflistung ausgelöst werden soll.This interface exposes the CollectionChanged event, an event that should be raised whenever the underlying collection changes.

WPFWPF Stellt die ObservableCollection<T> -Klasse, die integrierte Implementierung einer datenauflistung handelt, die implementiert die INotifyCollectionChanged Schnittstelle. 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 und Ihre eigene Auflistung implementieren möchten, erwägen Sie die Verwendung IList, dem bietet es sich um einer nicht generische Auflistung von Objekten, die einzeln nach 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. Implementieren von IList die Datenbindungs-Engine die beste Leistung bietet.Implementing IList provides the best performance with the data binding engine.

Hinweis

Zur Übertragung von Datenwerten von Bindungsobjekten Quelle, die Bindungstypen Ziele vollständig zu unterstützen, jedes Objekt in der Auflistung, die bindbare Eigenschaften unterstützt muss implementieren eine entsprechende Eigenschaft geändert-Benachrichtigungsmechanismus wie z. B. die INotifyPropertyChanged -Schnittstelle.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 verwendet werden, als ein XAML-Objektelement im Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF), in den Versionen 3.0 und 3.5.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. Die Nutzung hat jedoch erhebliche Einschränkungen.However, the usage has substantial limitations.

  • ObservableCollection<T> Das Stammelement muss sein werden, da die, die verwendet werden muss, an den eingeschränkten Typ der generischen ObservableCollection<T> wird nur unterstützt, für das Objektelement für das Stammelement.ObservableCollection<T> must be the root element, because the 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.

  • Müssen Sie deklarieren, ein (d. h., die der Buildvorgang für diese XAML-Datei sein müssen Page oder ein anderer Buildvorgang, das die XAML kompiliert wird).You must declare an (which entails that the build action for this XAML file must be Page or some other build action that compiles the XAML).

  • ObservableCollection<T> ist in einem Namespace und Assembly, die anfänglich nicht dem XML-Standardnamespace zugeordnet sind.ObservableCollection<T> is in a namespace and assembly that are not initially mapped to the default XML namespace. Muss ein Präfix für den Namespace und Assembly zuordnen, und klicken Sie dann das Präfix für das Objektelement-Tag für ObservableCollection<T>.You must map a prefix for the namespace and assembly, and then use that prefix on the object element tag for ObservableCollection<T>.

Eine weitere einfache Möglichkeit, ObservableCollection<T> Funktionen von XAML in einer Anwendung ist, um eigene benutzerdefinierte Sammlung nicht generische Klasse zu deklarieren, die abgeleitet ObservableCollection<T>, und diese für einen bestimmten Typ einschränkt.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. Klicken Sie dann ordnen Sie die Assembly, die diese Klasse enthält, und verweisen Sie es als Objektelement in Ihrem XAML.Then map the assembly that contains this class, and reference it as an object element in your XAML.

Konstruktoren

ObservableCollection<T>() ObservableCollection<T>() ObservableCollection<T>() ObservableCollection<T>()

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

ObservableCollection<T>(IEnumerable<T>) ObservableCollection<T>(IEnumerable<T>) ObservableCollection<T>(IEnumerable<T>) 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>) ObservableCollection<T>(List<T>) ObservableCollection<T>(List<T>) 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.

Methoden

Add(T) Add(T) Add(T) Add(T)

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

(Inherited from Collection<T>)
BlockReentrancy() BlockReentrancy() BlockReentrancy() BlockReentrancy()

Lässt wiedereintretende Versuche zum Ändern dieser Auflistung nicht zu. Disallows reentrant attempts to change this collection.

CheckReentrancy() CheckReentrancy() CheckReentrancy() CheckReentrancy()

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

Clear() Clear() Clear() Clear()

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

(Inherited from Collection<T>)
ClearItems() ClearItems() ClearItems() ClearItems()

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

Contains(T) Contains(T) Contains(T) Contains(T)

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

(Inherited from Collection<T>)
CopyTo(T[], Int32) CopyTo(T[], Int32) CopyTo(T[], Int32) 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.

(Inherited from Collection<T>)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

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

(Inherited from Collection<T>)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als die Standardhashfunktion. Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
IndexOf(T) IndexOf(T) IndexOf(T) 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>.

(Inherited from Collection<T>)
Insert(Int32, T) Insert(Int32, T) Insert(Int32, 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.

(Inherited from Collection<T>)
InsertItem(Int32, T) InsertItem(Int32, T) InsertItem(Int32, 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() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
Move(Int32, Int32) Move(Int32, Int32) Move(Int32, Int32) 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) MoveItem(Int32, Int32) MoveItem(Int32, Int32) 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) OnCollectionChanged(NotifyCollectionChangedEventArgs) OnCollectionChanged(NotifyCollectionChangedEventArgs) OnCollectionChanged(NotifyCollectionChangedEventArgs)

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

OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs) OnPropertyChanged(PropertyChangedEventArgs)

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

Remove(T) Remove(T) Remove(T) 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>.

(Inherited from Collection<T>)
RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

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

(Inherited from Collection<T>)
RemoveItem(Int32) RemoveItem(Int32) RemoveItem(Int32) RemoveItem(Int32)

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

SetItem(Int32, T) SetItem(Int32, T) SetItem(Int32, T) SetItem(Int32, T)

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

ToString() ToString() ToString() ToString()

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

(Inherited from Object)

Ereignisse

CollectionChanged CollectionChanged CollectionChanged 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 PropertyChanged PropertyChanged PropertyChanged

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

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) 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.

(Inherited from Collection<T>)
IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

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

(Inherited from Collection<T>)
IList.Add(Object) IList.Add(Object) IList.Add(Object) IList.Add(Object)

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

(Inherited from Collection<T>)
IList.Contains(Object) IList.Contains(Object) IList.Contains(Object) IList.Contains(Object)

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

(Inherited from Collection<T>)
IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object)

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

(Inherited from Collection<T>)
IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object) 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.

(Inherited from Collection<T>)
IList.Remove(Object) IList.Remove(Object) IList.Remove(Object) IList.Remove(Object)

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

(Inherited from Collection<T>)
INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged

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

Eigenschaften

Count Count Count 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>.

(Inherited from Collection<T>)
ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized 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).

(Inherited from Collection<T>)
ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot 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.

(Inherited from Collection<T>)
ICollection<T>.IsReadOnly ICollection<T>.IsReadOnly ICollection<T>.IsReadOnly 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.

(Inherited from Collection<T>)
IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize 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.

(Inherited from Collection<T>)
IList.IsReadOnly IList.IsReadOnly IList.IsReadOnly IList.IsReadOnly

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

(Inherited from Collection<T>)
IList.Item[Int32] IList.Item[Int32] IList.Item[Int32] IList.Item[Int32]

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

(Inherited from Collection<T>)
Items Items Items Items

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

(Inherited from Collection<T>)
Item[Int32] Item[Int32] Item[Int32] Item[Int32]

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

(Inherited from Collection<T>)

Gilt für:

Siehe auch