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

定義

項目が追加、削除されたとき、またはリスト全体が更新されたときに通知を提供する動的なデータ コレクションを表します。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

型パラメーター

T

コレクション内の要素の型。The type of elements in the collection.

継承
ObservableCollection<T>ObservableCollection<T>ObservableCollection<T>ObservableCollection<T>
派生
属性
実装

注釈

多くの場合を使用するデータは、オブジェクトのコレクションが。In many cases the data that you work with is a collection of objects. たとえば、データ バインディングにおける一般的なシナリオが使用するは、ItemsControlなど、 ListBoxListView、またはTreeViewレコードのコレクションを表示します。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.

実装するコレクションを列挙することができます、IEnumerableインターフェイス。You can enumerate over any collection that implements the IEnumerable interface. ただし、コレクションの挿入や削除が更新されるように、動的バインドを設定する、UIUIコレクションが自動的に実装する必要があります、INotifyCollectionChangedインターフェイス。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. このインターフェイスを公開、CollectionChangedイベントは、基になるコレクションが変更されるたびに発生するイベントです。This interface exposes the CollectionChanged event, an event that should be raised whenever the underlying collection changes.

WPFWPF 提供、ObservableCollection<T>クラスを実装するデータ コレクションの組み込みの実装である、INotifyCollectionChangedインターフェイス。provides the ObservableCollection<T> class, which is a built-in implementation of a data collection that implements the INotifyCollectionChanged interface.

独自のコレクションを実装する前に、使用を検討してObservableCollection<T>またはなどの既存のコレクションの 1 つのクラスList<T>Collection<T>、およびBindingList<T>、多数あります。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. 高度なシナリオがあるし、独自のコレクションを実装する場合は、使用を検討してIList、インデックスによって個別にアクセスできるオブジェクトの非ジェネリック コレクションを提供します。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. 実装するIListデータ バインディング エンジンで最適なパフォーマンスを提供します。Implementing IList provides the best performance with the data binding engine.

注意

バインディングのターゲットをバインディング ソース オブジェクトからの転送元のデータ値を完全にサポートするには、バインド可能なプロパティをサポートするコレクション内の各オブジェクト実装する必要あります、適切なプロパティ変更通知メカニズムなど、 INotifyPropertyChangedインターフェイスです。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.

詳細については、「コレクションにバインド」を参照してくださいデータ バインディングの概要します。For more information, see "Binding to Collections" in Data Binding Overview.

XAML の使用状況に関する注意事項Notes on XAML Usage

ObservableCollection<T> 内の XAML オブジェクト要素として使用できるWindows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)、バージョン 3.0 および 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. ただし、使用状況では、多くの制限があります。However, the usage has substantial limitations.

  • ObservableCollection<T> ルート要素である必要があります、x:TypeArgumentsジェネリックの制約付きの型を指定するために使用する必要があります属性ObservableCollection<T>オブジェクト要素のルート要素でのみサポートされます。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.

  • 宣言する必要があります、x:Class属性 (この XAML ファイルのビルド アクションをする必要があるが必要ですPageまたはその他のビルド、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> 最初に既定の XML 名前空間にマップされていないアセンブリと名前空間です。ObservableCollection<T> is in a namespace and assembly that are not initially mapped to the default XML namespace. 名前空間とアセンブリのプレフィックスをマップし、オブジェクトの要素タグの上でそのプレフィックスを使用する必要があります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>.

簡単に使用するObservableCollection<T>から派生した独自のカスタム コレクションの非ジェネリック クラスを宣言するアプリケーションで XAML からの機能は、 ObservableCollection<T>、その特定の型への制約とします。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. このクラスを含むアセンブリをマップし、XAML 内のオブジェクト要素として参照します。Then map the assembly that contains this class, and reference it as an object element in your XAML.

コンストラクター

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

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>)

指定したコレクションからコピーされた要素を格納する、ObservableCollection<T> クラスの新しいインスタンスを初期化します。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>)

指定したリストからコピーされた要素を格納する ObservableCollection<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the ObservableCollection<T> class that contains elements copied from the specified list.

メソッド

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

Collection<T> の末尾にオブジェクトを追加します。Adds an object to the end of the Collection<T>.

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

このコレクションを変更するための再入試行を禁止します。Disallows reentrant attempts to change this collection.

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

このコレクションを変更するための再入試行をチェックします。Checks for reentrant attempts to change this collection.

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

Collection<T> からすべての要素を削除します。Removes all elements from the Collection<T>.

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

コレクションからすべての項目を削除します。Removes all items from the collection.

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

ある要素が 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)

Collection<T> 全体を、互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まる部分に行います。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)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

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

Collection<T> を反復処理する列挙子を返します。Returns an enumerator that iterates through the Collection<T>.

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

既定のハッシュ関数として機能します。Serves as the default hash function.

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

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

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

指定したオブジェクトを検索し、Collection<T> 全体内で最初に見つかった位置の 0 から始まるインデックスを返します。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)

Collection<T> 内の指定したインデックスの位置に要素を挿入します。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)

コレクション内の指定したインデックスの位置に項目を挿入します。Inserts an item into the collection at the specified index.

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

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

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

指定したインデックスが示す位置にある項目を、コレクション内の新しい場所に移動します。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)

指定したインデックスが示す位置にある項目を、コレクション内の新しい場所に移動します。Moves the item at the specified index to a new location in the collection.

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

指定された引数を使用して、CollectionChanged イベントを発生させます。Raises the CollectionChanged event with the provided arguments.

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

指定された引数を使用して、PropertyChanged イベントを発生させます。Raises the PropertyChanged event with the provided arguments.

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

特定のオブジェクトが 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)

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)

指定したインデックスが示す位置にある項目をコレクションから削除します。Removes the item at the specified index of the collection.

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

指定したインデックス位置にある要素を置き換えます。Replaces the element at the specified index.

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

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

イベント

CollectionChanged CollectionChanged CollectionChanged CollectionChanged

項目が追加、削除、変更、移動された場合、またはリスト全体が更新されたときに発生します。Occurs when an item is added, removed, changed, moved, or the entire list is refreshed.

PropertyChanged PropertyChanged PropertyChanged PropertyChanged

プロパティ値が変更するときに発生します。Occurs when a property value changes.

明示的なインターフェイスの実装

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

ICollection の要素を Array にコピーします。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()

コレクションを反復処理する列挙子を返します。Returns an enumerator that iterates through a collection.

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

IList に項目を追加します。Adds an item to the IList.

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

IList に特定の値が格納されているかどうかを判断します。Determines whether the IList contains a specific value.

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

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)

IList 内の指定したインデックス位置に項目を挿入します。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)

特定のオブジェクトが IList 内にあるときに、最初に出現したものを削除します。Removes the first occurrence of a specific object from the IList.

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

プロパティ値が変更するときに発生します。Occurs when a property value changes.

プロパティ

Count Count Count Count

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

ICollection へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。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

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

ICollection<T> が読み取り専用かどうかを示す値を取得します。Gets a value indicating whether the ICollection<T> is read-only.

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

IList が固定サイズかどうかを示す値を取得します。Gets a value indicating whether the IList has a fixed size.

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

IList が読み取り専用かどうかを示す値を取得します。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]

指定したインデックスにある要素を取得または設定します。Gets or sets the element at the specified index.

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

IList<T> をラップする Collection<T> ラッパーを取得します。Gets a IList<T> wrapper around the Collection<T>.

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

指定したインデックスにある要素を取得または設定します。Gets or sets the element at the specified index.

(Inherited from Collection<T>)

拡張メソッド

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

返します、DataTableのコピーを格納する、DataRowオブジェクト、指定した入力IEnumerable<T>オブジェクト、ジェネリック パラメーターTDataRowします。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) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

コピーDataRowを指定したオブジェクトDataTable、指定した入力IEnumerable<T>オブジェクト、ジェネリック パラメーターTDataRowします。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) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

コピーDataRowを指定したオブジェクトDataTable、指定した入力IEnumerable<T>オブジェクト、ジェネリック パラメーターTDataRowします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

変換、IEnumerableIQueryableします。Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>)

ソース コレクション内のすべてのノードの先祖が格納された、要素のコレクションを返します。Returns a collection of elements that contains the ancestors of every node in the source collection.

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

ソース コレクション内のすべてのノードの先祖が格納され、フィルター処理された要素のコレクションを返します。Returns a filtered collection of elements that contains the ancestors of every node in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>)

ソース コレクション内のすべてのドキュメントおよび要素の子孫ノードのコレクションを返します。Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>)

ソース コレクション内のすべての要素とドキュメントの子孫要素が格納された要素のコレクションを返します。Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

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

ソース コレクション内のすべての要素とドキュメントの子孫要素が格納され、フィルター処理された要素のコレクションを返します。Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>)

ソース コレクション内のすべての要素およびドキュメントの子要素のコレクションを返します。Returns a collection of the child elements of every element and document in the source collection.

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

ソース コレクション内のすべての要素およびドキュメントの、フィルター処理された子要素のコレクションを返します。Returns a filtered collection of the child elements of every element and document in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>)

ソース コレクション内のすべてのノードがドキュメント順に並べ替えて格納された、ノードのコレクションを返します。Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>)

ソース コレクション内のすべてのドキュメントおよび要素の子ノードのコレクションを返します。Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>)

ソース コレクション内の親ノードからすべてのノードを削除します。Removes every node in the source collection from its parent node.

適用対象

こちらもご覧ください