Klasse System.Collections.ObjectModel.ObservableCollection<T>

Opmerking

In dit artikel vindt u aanvullende opmerkingen in de referentiedocumentatie voor deze API.

De ObservableCollection<T> klasse vertegenwoordigt een dynamische gegevensverzameling die meldingen geeft wanneer items worden toegevoegd of verwijderd, of wanneer de hele lijst wordt vernieuwd.

In veel gevallen zijn de gegevens waarmee u werkt een verzameling objecten. Een veelvoorkomend scenario in gegevensbinding is bijvoorbeeld het gebruik van een ItemsControl zoals een ListBox, ListView, of TreeView om een verzameling records weer te geven.

U kunt elke verzameling opsommen die de IEnumerable-interface implementeert. Als u echter dynamische bindingen wilt instellen zodat invoegingen of verwijderingen in de verzameling de gebruikersinterface automatisch bijwerken, moet de verzameling de INotifyCollectionChanged-interface implementeren. Deze interface maakt de CollectionChanged gebeurtenis beschikbaar, een gebeurtenis die moet worden gegenereerd wanneer de onderliggende verzameling wordt gewijzigd.

De ObservableCollection<T> klasse is een gegevensverzamelingstype waarmee de INotifyCollectionChanged interface wordt geïmplementeerd.

Voordat u uw eigen verzameling implementeert, kunt u overwegen om ObservableCollection<T> of een van de bestaande verzamelingsklassen te gebruiken, zoals List<T>, Collection<T>en BindingList<T>, onder andere. Als u een geavanceerd scenario hebt en uw eigen verzameling wilt implementeren, kunt u overwegen om een niet-algemene verzameling objecten te gebruiken IListdie afzonderlijk toegankelijk zijn voor index. Implementatie IList biedt de beste prestaties met de gegevensbindingsengine.

Opmerking

Om het overdragen van gegevenswaarden van bindingsbronobjecten naar bindingsdoelen volledig te ondersteunen, moet elk object in uw verzameling dat ondersteuning biedt voor bindingseigenschappen, een geschikt mechanisme voor gewijzigde meldingen van eigenschappen implementeren, zoals de INotifyPropertyChanged interface.

Zie 'Binding aan verzamelingen' in het overzicht van gegevensbindingen voor meer informatie.

Opmerkingen over het gebruik van XAML

ObservableCollection<T> kan worden gebruikt als een XAML-objectelement in Windows Presentation Foundation (WPF), in versie 3.0 en 3.5. Het gebruik heeft echter aanzienlijke beperkingen.

  • ObservableCollection<T> moet het hoofdelement zijn, omdat het x:TypeArguments kenmerk dat moet worden gebruikt om het beperkte type van het algemene element ObservableCollection<T> op te geven, alleen wordt ondersteund op het objectelement voor het hoofdelement.

  • U moet een x:Class kenmerk declareren (wat inhoudt dat de buildactie voor dit XAML-bestand moet zijn Page of een andere buildactie waarmee de XAML wordt gecompileerd).

  • ObservableCollection<T> staat in een naamruimte en een assembly die niet in eerste instantie worden toegewezen aan de standaard-XML-naamruimte. U moet een voorvoegsel aan de naamruimte en assembly koppelen en dat voorvoegsel vervolgens gebruiken in de tag van het objectelement ObservableCollection<T>.

Een eenvoudigere manier om mogelijkheden van XAML in een toepassing te gebruiken ObservableCollection<T> , is door uw eigen niet-algemene aangepaste verzamelingsklasse te declareren die is afgeleid van ObservableCollection<T>en beperkt tot een specifiek type. Koppel vervolgens de assembly die deze klasse bevat en verwijs ernaar als een object-element in uw XAML.