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的集合的默认视图。
或者,可以使用 类在 Extensible Application Markup Language (XAML) CollectionViewSource 中创建集合的视图,然后将控件绑定到该视图。 类 CollectionViewSource 是 类的 CollectionView XAML 表示形式。 有关示例,请参阅 如何:在 XAML 中使用视图对数据进行排序和分组。
有关详细信息,请参阅 数据绑定概述中的“绑定到集合”。
若要在 XAML 中设置视图,请使用 CollectionViewSource 类。 CollectionViewSource 是 类的 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 |
获取一个值,该值指示 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。 |