CollectionView 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表對分組、排序、篩選以及巡覽資料集合的檢視。
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
- 繼承
- 衍生
- 實作
備註
您不應該在程式碼中建立這個類別的物件。 若要為只實 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) 執行緒發送器。 |
方法
事件
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。 |