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的集合的默认视图。

或者,可以使用 类在 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) 线程调度程序。

方法

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)

将指定项和索引设置为 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

适用于