通过


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 是实现 IBindingListViewIBindingList.

或者,可以使用类在可扩展应用程序标记语言(XAML) CollectionViewSource 中创建集合的视图,然后将控件绑定到该视图。 该 CollectionViewSource 类是类的 CollectionView XAML 表示形式。 有关示例,请参阅 How to: Sort and Group Data Using a View in XAML.

有关详细信息,请参阅数据绑定概述中的“绑定到集合”。

若要在 XAML 中设置视图,请使用类 CollectionViewSourceCollectionViewSource 是类的 CollectionView XAML 表示形式,它公开了该类最常用的成员 CollectionView

构造函数

名称 说明
CollectionView(IEnumerable)

初始化表示指定集合视图的类的新实例 CollectionView

属性

名称 说明
AllowsCrossThreadChanges

获取一个值,该值指示创建 CollectionView 线程以外的线程是否可以更改 SourceCollection

CanFilter

获取一个值,该值指示视图是否支持筛选。

CanGroup

获取一个值,该值指示视图是否支持分组。

CanSort

获取一个值,该值指示视图是否支持排序。

Comparer

返回可用于比较视图中的项的对象。

Count

获取视图中的记录数。

Culture

获取或设置排序期间要使用的区域性信息。

CurrentItem

获取视图中的当前项。

CurrentPosition

获取(可选)排序和筛选)视图中的 CurrentItem 序号位置。

Dispatcher

获取与此DispatcherDispatcherObject关联的值。

(继承自 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)
已过时.

由基类调用,以通知派生类 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, Int32)

将指定的项和索引设置为属性的值CurrentItemCurrentPosition。 可以从派生类的构造函数调用此方法。

SetCurrent(Object, Int32)

将指定的项和索引设置为属性的值CurrentItemCurrentPosition

ToString()

返回一个表示当前对象的字符串。

(继承自 Object)
VerifyAccess()

强制调用线程有权访问此 DispatcherObject权限。

(继承自 DispatcherObject)

活动

名称 说明
CollectionChanged

在视图已更改时发生。

CurrentChanged

CurrentItem 更改后发生。

CurrentChanging

CurrentItem 更改时发生。

PropertyChanged

当属性值发生更改时发生。

显式接口实现

名称 说明
IEnumerable.GetEnumerator()

返回可用于 IEnumerator 枚举视图中项的对象。

INotifyCollectionChanged.CollectionChanged

在视图已更改时发生。

INotifyPropertyChanged.PropertyChanged

在属性值更改时发生。

扩展方法

名称 说明
AsParallel(IEnumerable)

启用查询的并行化。

AsQueryable(IEnumerable)

IEnumerable 转换为 IQueryable

Cast<TResult>(IEnumerable)

IEnumerable 的元素强制转换为指定类型。

OfType<TResult>(IEnumerable)

根据指定类型筛选 IEnumerable 的元素。

适用于