请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
.NET Framework

  开启低带宽视图
此页面仅适用于
Microsoft Visual Studio 2008/.NET Framework 3.5

同时提供下列产品的其他版本:
.NET Framework 类库
CollectionView 类

更新: 2008 年 7 月

表示用于分组、排序、筛选和导航数据集合的视图。

命名空间:  System.Windows.Data
程序集:  PresentationFramework(在 PresentationFramework.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/xaml/presentation

Visual Basic(声明)
Public Class CollectionView _
    Inherits DispatcherObject _
    Implements ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
Visual Basic (用法)
Dim instance As CollectionView
C#
public class CollectionView : DispatcherObject, 
    ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
Visual C++
public ref class CollectionView : public DispatcherObject, 
    ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
J#
public class CollectionView extends DispatcherObject implements ICollectionView, 
    IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
JScript
public class CollectionView extends DispatcherObject implements ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
XAML
<p>
                    要在 XAML 中设置视图,请使用 <span sdata="cer" target="T:System.Windows.Data.CollectionViewSource">CollectionViewSource</span> 类。<span sdata="cer" target="T:System.Windows.Data.CollectionViewSource">CollectionViewSource</span> 是 <span sdata="cer" target="T:System.Windows.Data.CollectionView"><span class="selflink">CollectionView</span></span> 类的 XAML 表示形式,而且它公开了最常用的 <span sdata="cer" target="T:System.Windows.Data.CollectionView"><span class="selflink">CollectionView</span></span> 类的成员。
                </p>

不应在代码中创建此类的对象。若要为只实现 IEnumerable 的集合创建集合视图,请创建 CollectionViewSource 对象,将集合添加到 Source 属性,然后从 View 属性获取集合视图。

可以将集合视图视为位于绑定源集合之上的一个层,您可以通过它使用排序、筛选和分组查询来导航和显示集合,所有这些操作都无需操作基础源集合本身。如果源集合实现了 INotifyCollectionChanged 接口,则引发 CollectionChanged 事件的更改将传播到视图。

由于视图不会更改基础源集合,因此源集合可以有多个关联的视图。通过使用视图,可以采用多种不同的方式来显示相同的数据。例如,可以对 Task 对象的集合使用两个视图,从而在一部分页面中显示按优先级排序的任务,在另一部分页面中显示按区域分组的任务。

在 WPF 应用程序中,所有集合都有一个关联的默认集合视图。绑定引擎总是通过关联的视图来访问集合,而不是直接使用集合。若要获取默认视图,请使用 CollectionViewSource..::.GetDefaultView 方法。基于 CollectionView 的内部类是仅实现 IEnumerable 的集合的默认视图。ListCollectionView 是实现 IList 的集合的默认视图。BindingListCollectionView 是实现 IBindingListViewIBindingList 的集合的默认视图。

或者,可以使用 CollectionViewSource 类在 可扩展应用程序标记语言 (XAML) 中创建集合视图,然后将控件绑定到该视图。CollectionViewSource 类是 CollectionView 类的 XAML 表示形式。有关示例,请参见如何:在 XAML 中使用视图对数据进行排序和分组

有关更多信息,请参见数据绑定概述中的“绑定到集合”。

使用视图可以用不同的方式查看同一数据集合,具体的方式取决于排序、筛选或分组条件。每个集合都有一个共享的默认视图,此视图在绑定指定集合作为其源时用作实际的绑定源。本示例说明了如何获取集合的默认视图。

若要创建视图,需要对相应集合的对象引用。通过以下方法可以获取此数据对象:引用您自己的代码隐藏对象、获取数据上下文、获取数据源的属性或者获取绑定的属性。本示例说明了如何获取数据对象的 DataContext 并使用它直接获得此集合的默认集合视图。

C#
myCollectionView = (CollectionView)
    CollectionViewSource.GetDefaultView(rootElem.DataContext);

在本示例中,根元素是一个 StackPanelDataContext 设置为引用数据提供程序的 myDataSource,该数据提供程序是 Order 对象的 ObservableCollection<(Of <(T>)>)

C#
<StackPanel.DataContext>
  <Binding Source="{StaticResource myDataSource}"/>
</StackPanel.DataContext>

另外,您也可以使用 CollectionViewSource 类实例化并绑定到您自己的集合视图。此集合视图仅由直接绑定到它的控件共享。有关示例,请参见数据绑定概述中的“如何创建视图”部分。

有关集合视图提供的功能的示例,请参见如何:在视图中对数据进行排序如何:筛选视图中的数据如何:在数据集合视图中的对象之间导航

更多代码

如何:在数据集合视图中的对象之间导航使用视图可以用不同的方式(包括排序、筛选或分组)查看同一数据集合。此外,视图还提供了当前记录指针概念,并可移动该指针。本示例演示如何获取当前对象,以及如何使用 CollectionView 类所提供的功能在数据集合中的对象之间导航。
如何:筛选视图中的数据此示例演示如何筛选视图中的数据。
如何:在视图中对数据进行排序此示例介绍如何在视图中对数据进行排序。
如何:在 XAML 中使用视图对数据进行排序和分组此示例演示如何在可扩展应用程序标记语言 (XAML) 中创建数据集的视图。使用视图可以进行分组、排序和筛选,并对当前项进行概念性说明。
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0

日期

历史记录

原因

2008 年 7 月

增加了新成员:NewItemPlaceholder 属性和 SetCurrent 方法。

SP1 功能更改。

社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利  |  商标  |  隐私权声明
Page view tracker