ObservableCollection<T> Classe

Définition

Représente une collection de données dynamiques qui fournit des notifications lorsque des éléments sont ajoutés, supprimés ou lorsque la liste entière est actualisée.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

Paramètres de type

T

Type des éléments de la collection.The type of elements in the collection.

Héritage
ObservableCollection<T>
Dérivé
Attributs
Implémente

Remarques

Dans de nombreux cas, les données avec lesquelles vous travaillez sont une collection d’objets.In many cases the data that you work with is a collection of objects. Par exemple, un scénario courant dans la liaison de données consiste à ItemsControl utiliser un ListBox, tel ListViewque, TreeView ou pour afficher une collection d’enregistrements.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.

Vous pouvez énumérer n’importe quelle collection qui implémente IEnumerable l’interface.You can enumerate over any collection that implements the IEnumerable interface. Toutefois, pour configurer des liaisons dynamiques afin que les insertions ou les suppressions dans la collection Interface utilisateurUI mettent à jour automatiquement, la collection INotifyCollectionChanged doit implémenter l’interface.However, to set up dynamic bindings so that insertions or deletions in the collection update the Interface utilisateurUI automatically, the collection must implement the INotifyCollectionChanged interface. Cette interface expose l' CollectionChanged événement, un événement qui doit être déclenché chaque fois que la collection sous-jacente est modifiée.This interface exposes the CollectionChanged event, an event that should be raised whenever the underlying collection changes.

WPFWPFfournit la ObservableCollection<T> classe, qui est une implémentation intégrée d’une collection de données qui implémente l' INotifyCollectionChanged interface.provides the ObservableCollection<T> class, which is a built-in implementation of a data collection that implements the INotifyCollectionChanged interface.

Avant d’implémenter votre propre collection, ObservableCollection<T> envisagez d’utiliser ou une des classes de List<T>collection existantes, BindingList<T>telles que, Collection<T>et, parmi de nombreuses autres.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. Si vous avez un scénario avancé et que vous souhaitez implémenter votre propre collection, IListenvisagez d’utiliser, qui fournit une collection non générique d’objets accessibles individuellement par index.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. L' IList implémentation de offre des performances optimales avec le moteur de liaison de données.Implementing IList provides the best performance with the data binding engine.

Notes

Pour prendre entièrement en charge le transfert des valeurs de données des objets de source de liaison vers les cibles de liaison, chaque objet de votre collection qui prend en charge les propriétés pouvant INotifyPropertyChanged être liées doit implémenter un mécanisme de notification de modification de propriété approprié, tel que le interface.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.

Pour plus d’informations, consultez « liaison aux collections » dans vue d’ensemblede la liaison de données.For more information, see "Binding to Collections" in Data Binding Overview.

Remarques sur l’utilisation de XAMLNotes on XAML Usage

ObservableCollection<T>peut être utilisé en tant qu’élément objet XAML Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)dans, dans les versions 3,0 et 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. Toutefois, l’utilisation présente des limitations importantes.However, the usage has substantial limitations.

  • ObservableCollection<T>doit être l’élément racine, car l' x:TypeArguments attribut qui doit être utilisé pour spécifier le type avec restriction du générique ObservableCollection<T> est uniquement pris en charge sur l’élément objet pour l’élément racine.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.

  • Vous devez déclarer un x:Class attribut (ce qui signifie que l’action de génération pour ce fichier XAML doit être Page ou une autre action de génération qui compile le code XAML).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>se trouve dans un espace de noms et un assembly qui ne sont pas mappés initialement à l’espace de noms XML par défaut.ObservableCollection<T> is in a namespace and assembly that are not initially mapped to the default XML namespace. Vous devez mapper un préfixe pour l’espace de noms et l’assembly, puis utiliser ce préfixe sur ObservableCollection<T>la balise de l’élément objet pour.You must map a prefix for the namespace and assembly, and then use that prefix on the object element tag for ObservableCollection<T>.

Une façon plus simple d’utiliser ObservableCollection<T> des fonctionnalités de XAML dans une application consiste à déclarer votre propre classe de collection personnalisée non générique qui dérive ObservableCollection<T>de et la limite à un type spécifique.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. Mappez ensuite l’assembly qui contient cette classe et référencez-le en tant qu’élément objet dans votre code XAML.Then map the assembly that contains this class, and reference it as an object element in your XAML.

Constructeurs

ObservableCollection<T>()

Initialise une nouvelle instance de la classe ObservableCollection<T>.Initializes a new instance of the ObservableCollection<T> class.

ObservableCollection<T>(IEnumerable<T>)

Initialise une nouvelle instance de la classe ObservableCollection<T> qui contient des éléments copiés depuis la collection spécifiée.Initializes a new instance of the ObservableCollection<T> class that contains elements copied from the specified collection.

ObservableCollection<T>(List<T>)

Initialise une nouvelle instance de la classe ObservableCollection<T> qui contient des éléments copiés à partir de la liste spécifiée.Initializes a new instance of the ObservableCollection<T> class that contains elements copied from the specified list.

Propriétés

Count

Obtient le nombre d’éléments réellement contenus dans Collection<T>.Gets the number of elements actually contained in the Collection<T>.

(Hérité de Collection<T>)
Item[Int32]

Obtient ou définit l'élément au niveau de l'index spécifié.Gets or sets the element at the specified index.

(Hérité de Collection<T>)
Items

Obtient un wrapper IList<T> autour de Collection<T>.Gets a IList<T> wrapper around the Collection<T>.

(Hérité de Collection<T>)

Méthodes

Add(T)

Ajoute un objet à la fin de la Collection<T>.Adds an object to the end of the Collection<T>.

(Hérité de Collection<T>)
BlockReentrancy()

Rejette les tentatives réentrantes ayant pour but de modifier cette collection.Disallows reentrant attempts to change this collection.

CheckReentrancy()

Vérifie les tentatives réentrantes ayant pour but de modifier cette collection.Checks for reentrant attempts to change this collection.

Clear()

Supprime tous les éléments de Collection<T>.Removes all elements from the Collection<T>.

(Hérité de Collection<T>)
ClearItems()

Supprime tous les éléments de la collection.Removes all items from the collection.

Contains(T)

Détermine si le Collection<T> contient un élément.Determines whether an element is in the Collection<T>.

(Hérité de Collection<T>)
CopyTo(T[], Int32)

Copie l'ensemble de l'objet Collection<T> vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.Copies the entire Collection<T> to a compatible one-dimensional Array, starting at the specified index of the target array.

(Hérité de Collection<T>)
Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetEnumerator()

Retourne un énumérateur qui itère au sein de Collection<T>.Returns an enumerator that iterates through the Collection<T>.

(Hérité de Collection<T>)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
IndexOf(T)

Recherche l'objet spécifié et retourne l'index de base zéro de la première occurrence dans l'ensemble du Collection<T>.Searches for the specified object and returns the zero-based index of the first occurrence within the entire Collection<T>.

(Hérité de Collection<T>)
Insert(Int32, T)

Insère un élément dans la classe Collection<T> au niveau de l'index spécifié.Inserts an element into the Collection<T> at the specified index.

(Hérité de Collection<T>)
InsertItem(Int32, T)

Insère un élément dans la collection au niveau de l'index spécifié.Inserts an item into the collection at the specified index.

MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
Move(Int32, Int32)

Déplace l'élément à l'index spécifié vers un nouvel emplacement dans la collection.Moves the item at the specified index to a new location in the collection.

MoveItem(Int32, Int32)

Déplace l'élément à l'index spécifié vers un nouvel emplacement dans la collection.Moves the item at the specified index to a new location in the collection.

OnCollectionChanged(NotifyCollectionChangedEventArgs)

Déclenche l’événement CollectionChanged avec les arguments fournis.Raises the CollectionChanged event with the provided arguments.

OnPropertyChanged(PropertyChangedEventArgs)

Déclenche l’événement PropertyChanged avec les arguments fournis.Raises the PropertyChanged event with the provided arguments.

Remove(T)

Supprime la première occurrence d'un objet spécifique de Collection<T>.Removes the first occurrence of a specific object from the Collection<T>.

(Hérité de Collection<T>)
RemoveAt(Int32)

Supprime l'élément au niveau de l'index spécifié de Collection<T>.Removes the element at the specified index of the Collection<T>.

(Hérité de Collection<T>)
RemoveItem(Int32)

Supprime l'élément au niveau de l'index spécifié dans la collection.Removes the item at the specified index of the collection.

SetItem(Int32, T)

Remplace l'élément au niveau de l'index spécifié.Replaces the element at the specified index.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Événements

CollectionChanged

Se produit lorsqu'un élément est ajouté, supprimé, modifié, déplacé ou lorsque la liste entière est actualisée.Occurs when an item is added, removed, changed, moved, or the entire list is refreshed.

PropertyChanged

Se produit en cas de modification d'une valeur de propriété.Occurs when a property value changes.

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie les éléments de ICollection dans Array, à partir d'un index particulier de Array.Copies the elements of the ICollection to an Array, starting at a particular Array index.

(Hérité de Collection<T>)
ICollection.IsSynchronized

Obtient une valeur indiquant si l'accès à ICollection est synchronisé (thread-safe).Gets a value indicating whether access to the ICollection is synchronized (thread safe).

(Hérité de Collection<T>)
ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l'accès à ICollection.Gets an object that can be used to synchronize access to the ICollection.

(Hérité de Collection<T>)
ICollection<T>.IsReadOnly

Obtient une valeur indiquant si ICollection<T> est en lecture seule.Gets a value indicating whether the ICollection<T> is read-only.

(Hérité de Collection<T>)
IEnumerable.GetEnumerator()

Retourne un énumérateur qui itère au sein d’une collection.Returns an enumerator that iterates through a collection.

(Hérité de Collection<T>)
IList.Add(Object)

Ajoute un élément à IList.Adds an item to the IList.

(Hérité de Collection<T>)
IList.Contains(Object)

Détermine si IList contient une valeur spécifique.Determines whether the IList contains a specific value.

(Hérité de Collection<T>)
IList.IndexOf(Object)

Détermine l'index d'un élément spécifique d'IList.Determines the index of a specific item in the IList.

(Hérité de Collection<T>)
IList.Insert(Int32, Object)

Insère un élément dans IList à l'index spécifié.Inserts an item into the IList at the specified index.

(Hérité de Collection<T>)
IList.IsFixedSize

Obtient une valeur indiquant si IList est de taille fixe.Gets a value indicating whether the IList has a fixed size.

(Hérité de Collection<T>)
IList.IsReadOnly

Obtient une valeur indiquant si IList est en lecture seule.Gets a value indicating whether the IList is read-only.

(Hérité de Collection<T>)
IList.Item[Int32]

Obtient ou définit l'élément au niveau de l'index spécifié.Gets or sets the element at the specified index.

(Hérité de Collection<T>)
IList.Remove(Object)

Supprime la première occurrence d'un objet spécifique de IList.Removes the first occurrence of a specific object from the IList.

(Hérité de Collection<T>)
INotifyPropertyChanged.PropertyChanged

Se produit en cas de modification d'une valeur de propriété.Occurs when a property value changes.

Méthodes d’extension

CopyToDataTable<T>(IEnumerable<T>)

Retourne un DataTable qui contient des copies des objets DataRow, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est DataRow.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)

Copie les objets DataRow vers le DataTable spécifié, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est DataRow.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)

Copie les objets DataRow vers le DataTable spécifié, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

Retourne une collection d'éléments qui contient les ancêtres de chaque nœud de la collection source.Returns a collection of elements that contains the ancestors of every node in the source collection.

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

Retourne une collection d'éléments filtrée qui contient les ancêtres de chaque nœud de la collection source.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

Retourne une collection des nœuds descendants de chaque document et élément de la collection source.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

Retourne une collection d'éléments qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

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

Retourne une collection d'éléments filtrée qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

Retourne une collection des éléments enfants de chaque élément et document de la collection source.Returns a collection of the child elements of every element and document in the source collection.

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

Retourne une collection filtrée des éléments enfants de chaque élément et document de la collection source.Returns a filtered collection of the child elements of every element and document in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

Retourne une collection de nœuds qui contient tous les nœuds de la collection source, triés selon l'ordre des documents.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

Retourne une collection des nœuds enfants de chaque document et élément de la collection source.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

Supprime chaque nœud de la collection source de son nœud parent.Removes every node in the source collection from its parent node.

S’applique à

Voir aussi