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

Definition

Rappresenta una raccolta di dati dinamica che fornisce notifiche in caso di aggiunta o rimozione di elementi oppure quando viene aggiornato l'intero elenco. 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

Type Parameters

T

Tipo di elementi contenuti nella raccolta. The type of elements in the collection.

Inheritance
ObservableCollection<T>ObservableCollection<T>ObservableCollection<T>ObservableCollection<T>
Derived
Attributes
SerializableAttribute
Implements

Remarks

In molti casi i dati cui si lavora sono una raccolta di oggetti.In many cases the data that you work with is a collection of objects. Ad esempio, uno scenario comune nel data binding consiste nell'usare un ItemsControl , ad esempio un ListBox, ListView, o TreeView per visualizzare una raccolta di record.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.

È possibile enumerare in qualsiasi raccolta che implementa il IEnumerable interfaccia.You can enumerate over any collection that implements the IEnumerable interface. Tuttavia, per impostare i binding dinamici in modo che gli inserimenti o eliminazioni nella raccolta di aggiornino il Interfaccia utenteUI automaticamente, la raccolta deve implementare il INotifyCollectionChanged interfaccia.However, to set up dynamic bindings so that insertions or deletions in the collection update the Interfaccia utenteUI automatically, the collection must implement the INotifyCollectionChanged interface. Questa interfaccia espone il CollectionChanged evento, un evento che deve essere generato a ogni modifica della raccolta sottostante.This interface exposes the CollectionChanged event, an event that should be raised whenever the underlying collection changes.

WPFWPF fornisce il ObservableCollection<T> classe, ovvero un'implementazione incorporata di una raccolta di dati che implementa il INotifyCollectionChanged interfaccia.provides the ObservableCollection<T> class, which is a built-in implementation of a data collection that implements the INotifyCollectionChanged interface.

Prima di implementare una raccolta personalizzata, è consigliabile usare ObservableCollection<T> o una delle raccolte esistenti classi, ad esempio List<T>, Collection<T>, e BindingList<T>, tra le molte altre.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. Se si dispone di uno scenario avanzato e si vuole implementare una raccolta personalizzata, è consigliabile usare IList, che fornisce una raccolta non generica di oggetti che è possibile accedere singolarmente tramite indice.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. Implementazione IList offre le migliori prestazioni con il motore di data binding.Implementing IList provides the best performance with the data binding engine.

Nota

Per supportare pienamente il trasferimento dei valori dei dati di associazione di oggetti di origine a destinazioni di associazioni, ogni oggetto nella raccolta che supporta proprietà associabili deve implementare un meccanismo di notifica di proprietà modificata appropriate, ad esempio il INotifyPropertyChanged interfaccia.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.

Per altre informazioni, vedere "Associazione di raccolte" nella Panoramica sul Data Binding.For more information, see "Binding to Collections" in Data Binding Overview.

Note sull'utilizzo di XAMLNotes on XAML Usage

ObservableCollection<T> può essere utilizzato come elemento oggetto XAML in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF), nelle versioni 3.0 e 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. Tuttavia, l'utilizzo presenta limitazioni sostanziali.However, the usage has substantial limitations.

  • ObservableCollection<T> deve essere l'elemento radice, in quanto il x:TypeArguments attributo che deve essere usato per specificare il tipo del tipo generico vincolato ObservableCollection<T> è supportata solo nell'elemento oggetto per l'elemento radice.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.

  • È necessario dichiarare un' x:Class attributo (che comporta che l'azione di compilazione per questo file XAML deve essere Page o un'altra azione che viene compilato il XAML di compilazione).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> è in un spazio dei nomi e assembly che non sono inizialmente mappati allo spazio dei nomi XML predefinito.ObservableCollection<T> is in a namespace and assembly that are not initially mapped to the default XML namespace. È necessario eseguire il mapping di un prefisso per lo spazio dei nomi e assembly e quindi usare tale prefisso tag dell'elemento oggetto per 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>.

Un modo più semplice per usare ObservableCollection<T> funzionalità di XAML in un'applicazione consiste nel dichiarare una propria classe non generica di raccolta personalizzato che deriva da ObservableCollection<T>, e limita a un tipo specifico.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. Quindi eseguire il mapping dell'assembly che contiene questa classe e farvi riferimento come elemento oggetto della finestra di XAML.Then map the assembly that contains this class, and reference it as an object element in your XAML.

Constructors

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

Inizializza una nuova istanza della classe ObservableCollection<T>. 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>)

Inizializza una nuova istanza della classe ObservableCollection<T> che contiene gli elementi copiati dalla raccolta specificata. 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>)

Inizializza una nuova istanza della classe ObservableCollection<T> che contiene gli elementi copiati dall'elenco specificato. Initializes a new instance of the ObservableCollection<T> class that contains elements copied from the specified list.

Methods

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

Aggiunge un oggetto alla fine di Collection<T>. Adds an object to the end of the Collection<T>.

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

Non consente tentativi di routine rientranti per modificare la raccolta. Disallows reentrant attempts to change this collection.

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

Cerca i tentativi di routine rientranti per modificare la raccolta. Checks for reentrant attempts to change this collection.

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

Rimuove tutti gli elementi da Collection<T>. Removes all elements from the Collection<T>.

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

Rimuove tutti gli elementi dalla raccolta. Removes all items from the collection.

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

Determina se un elemento è incluso in Collection<T>. 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)

Copia l'intero oggetto Collection<T> in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione. 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)

Determina se l'oggetto specificato è uguale all'oggetto corrente. Determines whether the specified object is equal to the current object.

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

Restituisce un enumeratore che esegue l'iterazione di Collection<T>. Returns an enumerator that iterates through the Collection<T>.

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

Funge da funzione hash predefinita. Serves as the default hash function.

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

Ottiene l'oggetto Type dell'istanza corrente. Gets the Type of the current instance.

(Inherited from Object)
IndexOf(T) IndexOf(T) IndexOf(T) IndexOf(T)

Cerca l'oggetto specificato e restituisce l'indice in base zero della prima occorrenza nell'intero oggetto Collection<T>. 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)

Inserisce un elemento in Collection<T> in corrispondenza dell'indice specificato. 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)

Inserisce un elemento nella raccolta in corrispondenza dell'indice specificato. Inserts an item into the collection at the specified index.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente. Creates a shallow copy of the current Object.

(Inherited from Object)
Move(Int32, Int32) Move(Int32, Int32) Move(Int32, Int32) Move(Int32, Int32)

Sposta l'elemento in corrispondenza dell'indice specificato in una nuova posizione nella raccolta. 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)

Sposta l'elemento in corrispondenza dell'indice specificato in una nuova posizione nella raccolta. Moves the item at the specified index to a new location in the collection.

OnCollectionChanged(NotifyCollectionChangedEventArgs) OnCollectionChanged(NotifyCollectionChangedEventArgs) OnCollectionChanged(NotifyCollectionChangedEventArgs) OnCollectionChanged(NotifyCollectionChangedEventArgs)

Genera l'evento CollectionChanged con gli argomenti specificati. Raises the CollectionChanged event with the provided arguments.

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

Genera l'evento PropertyChanged con gli argomenti specificati. Raises the PropertyChanged event with the provided arguments.

Remove(T) Remove(T) Remove(T) Remove(T)

Rimuove la prima occorrenza di un oggetto specifico da 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)

Rimuove l'elemento in corrispondenza dell'indice specificato di 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)

Rimuove l'elemento in corrispondenza dell'indice specificato della raccolta. Removes the item at the specified index of the collection.

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

Sostituisce l'elemento in corrispondenza dell'indice specificato. Replaces the element at the specified index.

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

Restituisce una stringa che rappresenta l'oggetto corrente. Returns a string that represents the current object.

(Inherited from Object)

Events

CollectionChanged CollectionChanged CollectionChanged CollectionChanged

Si verifica quando un elemento viene aggiunto, rimosso, modificato o spostato oppure quando viene aggiornato l'intero elenco. Occurs when an item is added, removed, changed, moved, or the entire list is refreshed.

PropertyChanged PropertyChanged PropertyChanged PropertyChanged

Generato quando il valore di una proprietà cambia. Occurs when a property value changes.

Explicit Interface Implementations

ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32)

Copia gli elementi di ICollection in Array a partire da un particolare indice Array. 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()

Restituisce un enumeratore che consente di eseguire l'iterazione di una raccolta. Returns an enumerator that iterates through a collection.

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

Aggiunge un elemento a IList. Adds an item to the IList.

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

Stabilisce se IList contiene un valore specifico. Determines whether the IList contains a specific value.

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

Determina l'indice di un elemento specifico in 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)

Inserisce un elemento nell'oggetto IList in corrispondenza dell'indice specificato. 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)

Rimuove la prima occorrenza di un oggetto specifico da IList. Removes the first occurrence of a specific object from the IList.

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

Generato quando il valore di una proprietà cambia. Occurs when a property value changes.

Properties

Count Count Count Count

Ottiene il numero di elementi effettivamente contenuti nell'oggetto Collection<T>. Gets the number of elements actually contained in the Collection<T>.

(Inherited from Collection<T>)
ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso a ICollection è sincronizzato (thread-safe). 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

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection. 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

Ottiene un valore che indica se ICollection<T> è di sola lettura. Gets a value indicating whether the ICollection<T> is read-only.

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

Ottiene un valore che indica se IList ha dimensioni fisse. Gets a value indicating whether the IList has a fixed size.

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

Ottiene un valore che indica se IList è di sola lettura. 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]

Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. Gets or sets the element at the specified index.

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

Ottiene un wrapper dell'oggetto IList<T> per l'insieme Collection<T>. Gets a IList<T> wrapper around the Collection<T>.

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

Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. Gets or sets the element at the specified index.

(Inherited from Collection<T>)

Applies to

See Also