CollectionView 類別

定義

代表對分組、排序、篩選以及巡覽資料集合的檢視。

public ref class CollectionView : System::Windows::Threading::DispatcherObject, System::Collections::IEnumerable, System::ComponentModel::ICollectionView, System::ComponentModel::INotifyPropertyChanged
public ref class CollectionView : System::Windows::Threading::DispatcherObject, System::Collections::IEnumerable, System::Collections::Specialized::INotifyCollectionChanged, System::ComponentModel::ICollectionView, System::ComponentModel::INotifyPropertyChanged
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
type CollectionView = class
    inherit DispatcherObject
    interface ICollectionView
    interface IEnumerable
    interface INotifyCollectionChanged
    interface INotifyPropertyChanged
type CollectionView = class
    inherit DispatcherObject
    interface IEnumerable
    interface INotifyCollectionChanged
    interface ICollectionView
    interface INotifyPropertyChanged
Public Class CollectionView
Inherits DispatcherObject
Implements ICollectionView, IEnumerable, INotifyPropertyChanged
Public Class CollectionView
Inherits DispatcherObject
Implements ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
繼承
CollectionView
衍生
實作

備註

您不應該在程式碼中建立這個類別的物件。 若要為只實 IEnumerable 作 的集合建立集合檢視,請 CollectionViewSource 建立 物件、將集合新增至 Source 屬性,並從 屬性取得集合檢視 View

您可以將集合檢視視為系結來源集合頂端的圖層,可讓您根據排序、篩選和群組查詢來巡覽和顯示集合,而不需要操作基礎來源集合本身。 如果來源集合實作 INotifyCollectionChanged 介面,則引發 CollectionChanged 事件的變更會傳播至檢視。

因為檢視不會變更基礎來源集合,所以來源集合可以有多個與其相關聯的檢視。 您可以使用檢視,以不同的方式顯示相同的資料。 例如,您可以使用 物件集合 Task 上的兩個檢視來顯示依頁面一部分優先順序排序的工作,並依頁面另一個部分的區域分組。

在 WPF 應用程式中,所有集合都有相關聯的預設集合檢視。 系結引擎一律會透過相關聯的檢視存取集合,而不是直接使用集合。 若要取得預設檢視,請使用 CollectionViewSource.GetDefaultView 方法。 根據 CollectionView 的內部類別是僅 IEnumerable 實作 之集合的預設檢視。 ListCollectionView 是實 IList 作 之集合的預設檢視。 BindingListCollectionView 是實 IBindingListView 作 或 IBindingList 之集合的預設檢視。

或者,您可以使用 類別來建立可延伸應用程式標記語言 (XAML) 集合的 CollectionViewSource 檢視,然後將控制項系結至該檢視。 類別 CollectionViewSource 是 類別的 CollectionView XAML 標記法。 如需範例,請參閱 How to: Sort and Group Data Using a View in XAML

如需詳細資訊,請參閱 資料系結概觀中的。

若要在 XAML 中設定檢視,請使用 CollectionViewSource 類別。 CollectionViewSource 是 類別的 CollectionView XAML 標記法,它會公開類別最常使用的成員 CollectionView

建構函式

CollectionView(IEnumerable)

初始化 CollectionView 類別的新執行個體 (Instance),此類別代表指定集合的檢視。

屬性

AllowsCrossThreadChanges

取得值,指出建立 CollectionView 的執行緒之外的執行緒是否可以變更 SourceCollection

CanFilter

取得值,表示檢視是否支援篩選。

CanGroup

取得值,表示檢視是否支援群組。

CanSort

取得值,表示檢視是否支援排序。

Comparer

傳回物件,可用來比較檢視中的項目。

Count

取得檢視中的資料錄數目。

Culture

取得或設定排序期間要使用的文化特性 (Culture) 資訊。

CurrentItem

取得檢視中的目前項目。

CurrentPosition

取得 CurrentItem 在 (可選擇經過排序及篩選) 檢視內的序數位置。

Dispatcher

取得與這個 Dispatcher 關聯的 DispatcherObject

(繼承來源 DispatcherObject)
Filter

取得或設定方法,這個方法用來判斷項目是否適合包含在檢視中。

GroupDescriptions

取得 GroupDescription 物件的集合,用來描述集合中的項目在檢視中如何成為群組。

Groups

取得最上層群組的集合,該集合是根據 GroupDescriptions 屬性所建構。

IsCurrentAfterLast

取得值,這個值表示檢視的 CurrentItem 是否超過集合的結尾。

IsCurrentBeforeFirst

取得值,指出檢視的 CurrentItem 是否在集合開頭之前。

IsCurrentInSync

取得值,指出 CurrentItem 是否位於 CurrentPosition

IsDynamic

取得值,表示基礎集合是否提供變更通知。

IsEmpty

取得值,這個值表示產生的 (已篩選) 檢視是否為空白。

IsInUse

取得值,指出是否有任何物件訂閱這個 CollectionView 的事件。

IsRefreshDeferred

取得值,指出是否仍然有未處理的 DeferRefresh() 在使用中。

NeedsRefresh

取得值,表示檢視是否需要重新整理。

NewItemPlaceholder

取得物件,這個物件在集合中代表新的項目。

SortDescriptions

取得 SortDescription 結構的集合,用來描述集合中的項目在檢視中如何排序。

SourceCollection

傳回未經篩選的基礎集合。

UpdatedOutsideDispatcher

取得值,這個值表示是否需要更新變更記錄檔,因為 CollectionChanged 通知已在不同的執行緒上收到,而不需要先輸入使用者介面, (UI) 執行緒發送器。

方法

CheckAccess()

判斷呼叫的執行是否可以存取這個 DispatcherObject

(繼承來源 DispatcherObject)
ClearChangeLog()
已淘汰.

清除變更記錄中任何暫止的變更。

ClearPendingChanges()

清除集合的未處理變更。

Contains(Object)

傳回值,指出指定的項目是否屬於檢視。

DeferRefresh()

進入延後循環,您可以用來合併變更到檢視,並且延遲自動重新整理。

DetachFromSourceCollection()

CollectionView 移除基礎集合的參考。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetEnumerator()

傳回物件,可用來列舉檢視中的項目。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetItemAt(Int32)

擷取檢視中位於指定索引的項目,此索引以零起始。

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)
已淘汰.

由基底類別 (Base Class) 呼叫,通知衍生類別,CollectionChanged 事件已經公佈到訊息佇列。

OnCollectionChanged(NotifyCollectionChangedEventArgs)

引發 CollectionChanged 事件。

OnCollectionChanged(Object, NotifyCollectionChangedEventArgs)

引發 CollectionChanged 事件。

OnCurrentChanged()

引發 CurrentChanged 事件。

OnCurrentChanging()

引發 CurrentChanging 事件,此事件無法取消。

OnCurrentChanging(CurrentChangingEventArgs)

使用指定的引數,引發 CurrentChanging 事件。

OnPropertyChanged(PropertyChangedEventArgs)

使用指定的引數,引發 PropertyChanged 事件。

PassesFilter(Object)

傳回值,指出指定的項目是否在屬於檢視的基礎集合中。

ProcessCollectionChanged(NotifyCollectionChangedEventArgs)

在衍生類別中覆寫時,處理 UI 執行緒上的單一變更。

ProcessPendingChanges()

確認已認可對集合的所有暫止變更。

Refresh()

重新建立檢視。

RefreshOrDefer()

重新整理檢視,或是指定檢視在延後循環完成時需要重新整理。

RefreshOverride()

重新建立檢視。

SetCurrent(Object, Int32)

將指定的項目與索引設定為 CurrentItemCurrentPosition 屬性的值。

SetCurrent(Object, Int32, Int32)

將指定的項目與索引設定為 CurrentItemCurrentPosition 屬性的值。 這個方法可從衍生類別的建構函式呼叫。

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)

IEnumerable 轉換成 IQueryable

適用於