英語で読む

次の方法で共有


CollectionView クラス

定義

データ コレクションをグループ化、並べ替え、フィルター処理、移動するためのビューを表します。

public class CollectionView : System.Windows.Threading.DispatcherObject, System.Collections.IEnumerable, System.ComponentModel.ICollectionView, System.ComponentModel.INotifyPropertyChanged
public class CollectionView : System.Windows.Threading.DispatcherObject, System.Collections.IEnumerable, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.ICollectionView, System.ComponentModel.INotifyPropertyChanged
継承
CollectionView
派生
実装

注釈

コードでは、このクラスのオブジェクトを作成しないでください。 のみを実装 IEnumerableするコレクションのコレクション ビューを作成するには、 オブジェクトを CollectionViewSource 作成し、 プロパティに Source コレクションを追加し、 プロパティからコレクション ビューを View 取得します。

コレクション ビューは、基になるソース コレクション自体を操作しなくても、並べ替え、フィルター、およびグループ クエリに基づいてコレクションを移動および表示できる、バインディング ソース コレクションの上にあるレイヤーと考えることができます。 ソース コレクションで インターフェイスが実装されている INotifyCollectionChanged 場合、イベントを発生させる CollectionChanged 変更がビューに反映されます。

ビューは基になるソース コレクションを変更しないため、ソース コレクションには複数のビューを関連付けることができます。 ビューを使用すると、同じデータをさまざまな方法で表示できます。 たとえば、オブジェクトのコレクションで 2 つのビューを使用すると、ページの Task 1 つの部分で優先度順に並べ替えられたタスクと、ページの別の部分の領域別にグループ化されたタスクを表示できます。

WPF アプリケーションでは、すべてのコレクションに既定のコレクション ビューが関連付けられています。 バインド エンジンは、コレクションを直接操作するのではなく、関連付けられたビューを通じて常にコレクションにアクセスします。 既定のビューを取得するには、 メソッドを使用します CollectionViewSource.GetDefaultView 。 に CollectionView 基づく内部クラスは、 のみを IEnumerable実装するコレクションの既定のビューです。 ListCollectionView は、 を実装 IListするコレクションの既定のビューです。 BindingListCollectionViewは、 または IBindingListを実装IBindingListViewするコレクションの既定のビューです。

または、 クラスを使用 CollectionViewSource して拡張可能なアプリケーション マークアップ言語 (XAML) でコレクションのビューを作成し、コントロールをそのビューにバインドすることもできます。 クラスは CollectionViewSource 、 クラスの CollectionView XAML 表現です。 例については、「 方法: XAML でビューを使用してデータを並べ替えおよびグループ化する」を参照してください。

詳細については、「データ バインディングの概要」の「コレクションへの バインド」を参照してください。

XAML でビューを設定するには、 クラスを使用します CollectionViewSourceCollectionViewSource は クラスの CollectionView XAML 表現であり、 クラスの最も一般的に使用されるメンバーを CollectionView 公開します。

コンストラクター

CollectionView(IEnumerable)

指定されたコレクションのビューを表す、CollectionView クラスの新しいインスタンスを初期化します。

プロパティ

AllowsCrossThreadChanges

CollectionView を作成したスレッド以外のスレッドが SourceCollection を変更できるかどうかを示す値を取得します。

CanFilter

ビューがフィルター処理をサポートするかどうかを示す値を取得します。

CanGroup

ビューがグループ化をサポートするかどうかを示す値を取得します。

CanSort

ビューが並べ替えをサポートするかどうかを示す値を取得します。

Comparer

ビュー内の項目を比較するために使用できるオブジェクトを返します。

Count

ビュー内のレコードの数を取得します。

Culture

並べ替え中に使用するカルチャ情報を取得または設定します。

CurrentItem

ビュー内の現在の項目を取得します。

CurrentPosition

ビュー (オプションで並べ替えおよびフィルター処理されたビュー) 内の CurrentItem の位置を表す序数を取得します。

Dispatcher

この Dispatcher が関連付けられている DispatcherObject を取得します。

(継承元 DispatcherObject)
Filter

項目をビューに含めることが適切であるかどうかを決定するために使用されるメソッドを取得または設定します。

GroupDescriptions

コレクション内の項目をビュー内でどのようにグループ化するかを説明する GroupDescription オブジェクトのコレクションを取得します。

Groups

GroupDescriptions プロパティに従って構築されるトップレベル グループのコレクションを取得します。

IsCurrentAfterLast

ビューの CurrentItem がコレクションの末尾を越えるかどうかを示す値を取得します。

IsCurrentBeforeFirst

ビューの CurrentItem がコレクションの先頭より前にあるかどうかを示す値を取得します。

IsCurrentInSync

CurrentItemCurrentPosition にあるかどうかを示す値を取得します。

IsDynamic

基になるコレクションが変更通知機能を持つかどうかを示す値を取得します。

IsEmpty

結果の (フィルター処理された) ビューが空かどうかを示す値を取得します。

IsInUse

この CollectionView オブジェクトのイベントをサブスクライブしているオブジェクトがあるかどうかを示す値を取得します。

IsRefreshDeferred

保留状態の DeferRefresh() が使用されているかどうかを示す値を取得します。

NeedsRefresh

ビューを更新する必要があるかどうかを示す値を取得します。

NewItemPlaceholder

新しい項目を表すコレクション内のオブジェクトを取得します。

SortDescriptions

コレクション内の項目をビュー内でどのように並べ替えるかを説明する SortDescription 構造体のコレクションを取得します。

SourceCollection

基になるフィルター処理されていないコレクションを返します。

UpdatedOutsideDispatcher

ユーザー インターフェイス (UI) スレッド ディスパッチャーを最初に入力せずに別のスレッドで通知を受信したため CollectionChanged 、変更ログを更新する必要があったかどうかを示す値を取得します。

メソッド

CheckAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。

(継承元 DispatcherObject)
ClearChangeLog()
古い.

保留状態の変更を変更ログから消去します。

ClearPendingChanges()

コレクションに対する未処理の変更をクリアします。

Contains(Object)

指定された項目がビューに属しているかどうかを示す値を返します。

DeferRefresh()

ビューの変更をマージして自動更新を遅延させるために使用できる遅延サイクルを入力します。

DetachFromSourceCollection()

基になるコレクションの参照を CollectionView から削除します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetEnumerator()

ビュー内の項目を列挙するために使用できるオブジェクトを返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetItemAt(Int32)

ビュー内の、0 から始まる指定されたインデックス位置にある項目を取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IndexOf(Object)

指定した項目の位置を示すインデックスを返します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MoveCurrentTo(Object)

指定された項目をビュー内の CurrentItem に設定します。

MoveCurrentToFirst()

ビュー内の最初の項目を CurrentItem として設定します。

MoveCurrentToLast()

ビュー内の最後の項目を CurrentItem として設定します。

MoveCurrentToNext()

ビュー内の CurrentItem の後の項目を CurrentItemとして設定します。

MoveCurrentToPosition(Int32)

指定したインデックスにある項目を、ビュー内の CurrentItem になるように設定します。

MoveCurrentToPrevious()

ビュー内の CurrentItem の前にある項目を CurrentItem として設定します。

OKToChangeCurrent()

ビューで、CurrentItem である項目を変更できるかどうかを示す値を返します。

OnAllowsCrossThreadChangesChanged()

AllowsCrossThreadChanges プロパティが変更されたときに発生します。

OnBeginChangeLogging(NotifyCollectionChangedEventArgs)
古い.

CollectionChanged イベントがメッセージ キューにポストされたことを派生クラスに通知するために、基本クラスによって呼び出されます。

OnCollectionChanged(NotifyCollectionChangedEventArgs)

CollectionChanged イベントを発生させます。

OnCollectionChanged(Object, NotifyCollectionChangedEventArgs)

CollectionChanged イベントを発生させます。

OnCurrentChanged()

CurrentChanged イベントを発生させます。

OnCurrentChanging()

キャンセルできない CurrentChanging イベントを発生させます。

OnCurrentChanging(CurrentChangingEventArgs)

指定された引数を使用して、CurrentChanging イベントを発生させます。

OnPropertyChanged(PropertyChangedEventArgs)

指定された引数を使用して PropertyChanged イベントを発生させます。

PassesFilter(Object)

基になるコレクション内の指定した項目がビューに属しているかどうかを示す値を返します。

ProcessCollectionChanged(NotifyCollectionChangedEventArgs)

派生クラスでオーバーライドされると、UI スレッドで 1 つの変更が処理されます。

ProcessPendingChanges()

コレクションへのすべての保留中の変更がコミットされたことを確認します。

Refresh()

ビューを再作成します。

RefreshOrDefer()

ビューを更新します。または遅延サイクルの完了時にビューを更新する必要があることを指定します。

RefreshOverride()

ビューを再作成します。

SetCurrent(Object, Int32)

指定された項目およびインデックスを CurrentItem プロパティおよび CurrentPosition プロパティの値として設定します。

SetCurrent(Object, Int32, Int32)

指定された項目およびインデックスを CurrentItem プロパティおよび CurrentPosition プロパティの値として設定します。 このメソッドは、派生クラスのコンストラクターから呼び出すことができます。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
VerifyAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。

(継承元 DispatcherObject)

イベント

CollectionChanged

ビューが変化すると発生します。

CurrentChanged

CurrentItem が変更された後に発生します。

CurrentChanging

CurrentItem が変更されているときに発生します。

PropertyChanged

プロパティ値が変更されたときに発生します。

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

IEnumerable.GetEnumerator()

ビュー内の項目を列挙するために使用できる IEnumerator オブジェクトを返します。

INotifyCollectionChanged.CollectionChanged

ビューが変化すると発生します。

INotifyPropertyChanged.PropertyChanged

プロパティ値が変更するときに発生します。

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。

適用対象

製品 バージョン
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9