Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
ObservableCollection(Of T)-Klasse
Stellt eine dynamische Datenauflistung dar, die Benachrichtigungen bereitstellt, wenn Elemente hinzugefügt oder entfernt werden oder wenn die gesamte Liste aktualisiert wird.
System.Collections.ObjectModel.Collection(Of T)
System.Collections.ObjectModel.ObservableCollection(Of T)
System.Data.Services.Client.DataServiceCollection(Of T)
System.Windows.Controls.CalendarBlackoutDatesCollection
System.Windows.Controls.GridViewColumnCollection
System.Windows.Controls.SelectedDatesCollection
Assembly: System (in System.dll)
XMLNS für XAML: Keinem xmlns zugeordnet.
Der ObservableCollection(Of T)-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
ObservableCollection(Of T) | Initialisiert eine neue Instanz der ObservableCollection(Of T)-Klasse. |
|
ObservableCollection(Of T)(IEnumerable(Of T)) | Initialisiert eine neue Instanz der ObservableCollection(Of T)-Klasse, die aus der angegebenen Auflistung kopierte Elemente enthält. |
|
ObservableCollection(Of T)(List(Of T)) | Initialisiert eine neue Instanz der ObservableCollection(Of T)-Klasse, die aus der angegebenen Liste kopierte Elemente enthält. |
| Name | Beschreibung | |
|---|---|---|
|
Count | Ruft die Anzahl der Elemente ab, die tatsächlich in der Collection(Of T) enthalten sind. (Von Collection(Of T) geerbt.) |
|
Item | Ruft das Element am angegebenen Index ab oder legt dieses fest. (Von Collection(Of T) geerbt.) |
|
Items | Ruft den Collection(Of T)-Wrapper ab, der IList(Of T) einbindet. (Von Collection(Of T) geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
Add | Fügt am Ende der Collection(Of T) ein Objekt hinzu. (Von Collection(Of T) geerbt.) |
|
BlockReentrancy | Verweigert das Ändern dieser Auflistung durch wiedereintretende Versuche. |
|
CheckReentrancy | Sucht wiedereintretende Versuche, diese Auflistung zu ändern. |
|
Clear | Entfernt alle Elemente aus der Collection(Of T). (Von Collection(Of T) geerbt.) |
|
ClearItems | Entfernt alle Elemente aus der Auflistung. (Überschreibt Collection(Of T).ClearItems.) |
|
Contains | Bestimmt, ob sich ein Element in der Collection(Of T) befindet. (Von Collection(Of T) geerbt.) |
|
CopyTo | Kopiert die gesamte Collection(Of T) in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays. (Von Collection(Of T) geerbt.) |
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.) |
|
GetEnumerator | Gibt einen Enumerator zurück, der die Collection(Of T) durchläuft. (Von Collection(Of T) geerbt.) |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
IndexOf | Sucht nach dem angegebenen Objekt und gibt den nullbasierten Index des ersten Vorkommens innerhalb der gesamten Collection(Of T) zurück. (Von Collection(Of T) geerbt.) |
|
Insert | Fügt am angegebenen Index ein Element in die Collection(Of T) ein. (Von Collection(Of T) geerbt.) |
|
InsertItem | Fügt ein Element am angegebenen Index in die Auflistung ein. (Überschreibt Collection(Of T).InsertItem(Int32, T).) |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
Move | Verschiebt das Element am angegebenen Index an eine neue Position in der Auflistung. |
|
MoveItem | Verschiebt das Element am angegebenen Index an eine neue Position in der Auflistung. |
|
OnCollectionChanged | Löst das CollectionChanged-Ereignis mit den angegebenen Argumenten aus. |
|
OnPropertyChanged | Löst das PropertyChanged-Ereignis mit den angegebenen Argumenten aus. |
|
Remove | Entfernt das erste Vorkommen eines bestimmten Objekts aus der Collection(Of T). (Von Collection(Of T) geerbt.) |
|
RemoveAt | Entfernt das Element am angegebenen Index aus der Collection(Of T). (Von Collection(Of T) geerbt.) |
|
RemoveItem | Entfernt das Element am angegebenen Index aus der Auflistung. (Überschreibt Collection(Of T).RemoveItem(Int32).) |
|
SetItem | Ersetzt das Element am angegebenen Index. (Überschreibt Collection(Of T).SetItem(Int32, T).) |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
CollectionChanged | Tritt ein, wenn ein Element hinzugefügt, entfernt, geändert oder verschoben wird oder wenn die gesamte Liste aktualisiert wird. |
|
PropertyChanged | Tritt ein, wenn sich ein Eigenschaftswert ändert. |
| Name | Beschreibung | |
|---|---|---|
|
ICollection.CopyTo | Kopiert die Elemente der ICollection beginnend bei einem bestimmten Array-Index in ein Array. (Von Collection(Of T) geerbt.) |
|
ICollection(Of T).IsReadOnly | Ruft einen Wert ab, der angibt, ob die ICollection(Of T) schreibgeschützt ist. (Von Collection(Of T) geerbt.) |
|
ICollection.IsSynchronized | Ruft einen Wert ab, der angibt, ob der Zugriff auf ICollection synchronisiert (threadsicher) ist. (Von Collection(Of T) geerbt.) |
|
ICollection.SyncRoot | Ruft ein Objekt ab, mit dem der Zugriff auf die ICollection synchronisiert werden kann. (Von Collection(Of T) geerbt.) |
|
IEnumerable.GetEnumerator | Gibt einen Enumerator zurück, der eine Auflistung durchläuft. (Von Collection(Of T) geerbt.) |
|
IList.Add | Fügt der IList ein Element hinzu. (Von Collection(Of T) geerbt.) |
|
IList.Contains | Bestimmt, ob die IList einen bestimmten Wert enthält. (Von Collection(Of T) geerbt.) |
|
IList.IndexOf | Bestimmt den Index eines bestimmten Elements in der IList. (Von Collection(Of T) geerbt.) |
|
IList.Insert | Fügt ein Element am angegebenen Index in die IList ein. (Von Collection(Of T) geerbt.) |
|
IList.IsFixedSize | Ruft einen Wert ab, der angibt, ob IList eine feste Größe hat. (Von Collection(Of T) geerbt.) |
|
IList.IsReadOnly | Ruft einen Wert ab, der angibt, ob IList schreibgeschützt ist. (Von Collection(Of T) geerbt.) |
|
IList.Item | Ruft das Element am angegebenen Index ab oder legt dieses fest. (Von Collection(Of T) geerbt.) |
|
IList.Remove | Entfernt das erste Vorkommen eines bestimmten Objekts aus der IList. (Von Collection(Of T) geerbt.) |
|
INotifyPropertyChanged.PropertyChanged | Tritt ein, wenn sich ein Eigenschaftswert ändert. |
In vielen Fällen handelt es sich bei den Daten, die Sie verwenden, um eine Auflistung von Objekten. Ein übliches Szenario bei der Datenbindung besteht beispielsweise darin, ein ItemsControl zu verwenden, z. B. eine ListBox, eine ListView oder eine TreeView, um eine Auflistung von Datensätzen anzuzeigen.
Sie können jede Auflistung auflisten, die die IEnumerable-Schnittstelle implementiert. Um dynamische Bindungen einzurichten, bei denen die UI automatisch nach Einfügungen oder Löschungen in der Auflistung aktualisiert wird, muss die Auflistung die INotifyCollectionChanged-Schnittstelle implementieren. Diese Schnittstelle macht das CollectionChanged-Ereignis verfügbar, das bei jeder Änderung der zugrunde liegenden Auflistung ausgelöst werden sollte.
WPF stellt die ObservableCollection(Of T)-Klasse bereit, bei der es sich um eine integrierte Implementierung einer Datenauflistung handelt, die die INotifyCollectionChanged-Schnittstelle implementiert.
Statt eigene Auflistungen zu implementieren, können Sie auch ObservableCollection(Of T) bzw. eine vorhandene Auflistungsklasse wie List(Of T), Collection(Of T) oder BindingList(Of T) verwenden. Wenn Sie für ein erweitertes Szenario eine eigene Auflistung implementieren möchten, können Sie eine IList verwenden, die eine nicht generische Auflistung von Objekten bereitstellt, auf die jeweils über den Index zugegriffen werden kann. Durch die Implementierung von IList wird eine optimale Leistung mit dem Datenbindungsmodul erzielt.
Hinweis
|
|---|
|
Um eine vollständige Unterstützung für die Übertragung von Datenwerten von Bindungsquellen-Objekten an Bindungsziele bereitzustellen, muss jedes Objekt in der Auflistung, die bindbare Eigenschaften unterstützt, einen entsprechenden Benachrichtigungsmechanismus bei Eigenschaftenänderungen implementieren, z. B. die INotifyPropertyChanged-Schnittstelle. |
Weitere Informationen finden Sie in Übersicht über Datenbindung unter Binden an Auflistungen
Hinweise zur XAML-Verwendung
ObservableCollection(Of T) kann als ein XAML-Objektelement in Windows Presentation Foundation (WPF) in Versionen 3.0 und 3.5 verwendet werden. Die Verwendung hat jedoch beträchtliche Einschränkungen.
-
ObservableCollection(Of T) muss das Stammelement sein, da das x:TypeArguments-Attribut, mit dem der eingeschränkte Typ der generischen ObservableCollection(Of T) angegeben werden muss, nur für das Objektelement für das Stammelement unterstützt wird.
-
Sie müssen ein x:Class-Attribut deklarieren (d. h. der Buildvorgang für diese XAML-Datei muss Page oder ein anderer Buildvorgang für die XAML-Kompilierung sein).
-
ObservableCollection(Of T) befindet sich in einem Namespace und einer Assembly, die anfänglich nicht dem Standard-XML-Namespace zugeordnet sind. Sie müssen ein Präfix für den Namespace und die Assembly zuordnen und dann das Präfix für das Objektelementtag für ObservableCollection(Of T) verwenden.
Eine einfachere Möglichkeit für die Verwendung von ObservableCollection(Of T)-Funktionen aus XAML in einer Anwendung ist das Deklarieren einer eigenen nicht generischen benutzerdefinierten Auflistungsklasse, die von ObservableCollection(Of T) abgeleitet ist und diese auf einen bestimmten Typ einschränkt. Ordnen Sie dann die Assembly zu, die diese Klasse enthält, und verweisen Sie darauf als Element in XAML.
This example shows how to create and bind to a collection that derives from the ObservableCollection(Of T) class, which is a collection class that provides notifications when items get added or removed.
The following example shows the implementation of a NameList collection:
public class NameList : ObservableCollection<PersonName> { public NameList() : base() { Add(new PersonName("Willa", "Cather")); Add(new PersonName("Isak", "Dinesen")); Add(new PersonName("Victor", "Hugo")); Add(new PersonName("Jules", "Verne")); } } public class PersonName { private string firstName; private string lastName; public PersonName(string first, string last) { this.firstName = first; this.lastName = last; } public string FirstName { get { return firstName; } set { firstName = value; } } public string LastName { get { return lastName; } set { lastName = value; } } }
You can make the collection available for binding the same way you would with other common language runtime (CLR) objects, as described in Gewusst wie: Bereitstellen von Daten, um diese in XAML zu binden. For example, you can instantiate the collection in XAML and specify the collection as a resource, as shown here:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:c="clr-namespace:SDKSample" x:Class="SDKSample.Window1" Width="400" Height="280" Title="MultiBinding Sample"> <Window.Resources> <c:NameList x:Key="NameListData"/> ... </Window.Resources>
You can then bind to the collection:
The definition of NameItemTemplate is not shown here.
Hinweis
|
|---|
|
The objects in your collection must satisfy the requirements described in the Übersicht über Bindungsquellen. In particular, if you are using OneWay or TwoWay (for example, you want your UI to update when the source properties change dynamically), you must implement a suitable property changed notification mechanism such as the INotifyPropertyChanged interface. |
For more information, see the Binding to Collections section in the Übersicht über Datenbindung.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
