ItemCollection 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
包含构成 ItemsControl 的内容的项的列表。
public ref class ItemCollection sealed : System::Windows::Data::CollectionView, System::Collections::IList, System::ComponentModel::IEditableCollectionView, System::ComponentModel::IItemProperties, System::Windows::IWeakEventListener
public ref class ItemCollection sealed : System::Windows::Data::CollectionView, System::Collections::IList, System::ComponentModel::IEditableCollectionViewAddNewItem, System::ComponentModel::IItemProperties, System::Windows::IWeakEventListener
public ref class ItemCollection sealed : System::Windows::Data::CollectionView, System::Collections::IList, System::ComponentModel::ICollectionViewLiveShaping, System::ComponentModel::IEditableCollectionViewAddNewItem, System::ComponentModel::IItemProperties, System::Windows::IWeakEventListener
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
public sealed class ItemCollection : System.Windows.Data.CollectionView, System.Collections.IList, System.ComponentModel.IEditableCollectionView, System.ComponentModel.IItemProperties, System.Windows.IWeakEventListener
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
public sealed class ItemCollection : System.Windows.Data.CollectionView, System.Collections.IList, System.ComponentModel.IEditableCollectionViewAddNewItem, System.ComponentModel.IItemProperties, System.Windows.IWeakEventListener
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
public sealed class ItemCollection : System.Windows.Data.CollectionView, System.Collections.IList, System.ComponentModel.ICollectionViewLiveShaping, System.ComponentModel.IEditableCollectionViewAddNewItem, System.ComponentModel.IItemProperties, System.Windows.IWeakEventListener
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
type ItemCollection = class
inherit CollectionView
interface IList
interface ICollection
interface IEnumerable
interface IEditableCollectionView
interface IItemProperties
interface IWeakEventListener
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
type ItemCollection = class
inherit CollectionView
interface IList
interface ICollection
interface IEnumerable
interface IEditableCollectionViewAddNewItem
interface IEditableCollectionView
interface IItemProperties
interface IWeakEventListener
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
type ItemCollection = class
inherit CollectionView
interface IList
interface ICollection
interface IEnumerable
interface IEditableCollectionViewAddNewItem
interface IEditableCollectionView
interface ICollectionViewLiveShaping
interface IItemProperties
interface IWeakEventListener
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
type ItemCollection = class
inherit CollectionView
interface ICollection
interface IEnumerable
interface IList
interface ICollectionViewLiveShaping
interface IEditableCollectionView
interface IEditableCollectionViewAddNewItem
interface IItemProperties
interface IWeakEventListener
Public NotInheritable Class ItemCollection
Inherits CollectionView
Implements IEditableCollectionView, IItemProperties, IList, IWeakEventListener
Public NotInheritable Class ItemCollection
Inherits CollectionView
Implements IEditableCollectionViewAddNewItem, IItemProperties, IList, IWeakEventListener
Public NotInheritable Class ItemCollection
Inherits CollectionView
Implements ICollectionViewLiveShaping, IEditableCollectionViewAddNewItem, IItemProperties, IList, IWeakEventListener
- 继承
- 属性
- 实现
示例
如果有一个 ItemsControl,例如 ListBox 包含内容的 ,则可以使用 Items 属性访问 ItemCollection视图 。 因为它是视图,因此可以使用与视图相关的功能,例如排序、筛选和分组。 请注意,设置 ItemsSource 时,视图操作将委托给 ItemsSource 集合上的视图。 因此,仅当委托视图支持时,ItemCollection 才支持排序、筛选和分组。
以下示例演示如何对名为 myListBox
的内容ListBox进行排序。 在此示例中, Content
是排序依据的属性的名称。
myListBox.Items.SortDescriptions.Add(
new SortDescription("Content", ListSortDirection.Descending));
myListBox.Items.SortDescriptions.Add(New SortDescription("Content", ListSortDirection.Descending))
执行此操作时,视图可能是默认视图,也可能不是默认视图,具体取决于在 上 ItemsControl设置数据的方式。 例如,当 属性 ItemsSource 绑定到 时 CollectionViewSource,使用 Items 属性获取的视图不是默认视图。
ItemsControl如果绑定 (使用 ItemsSource 属性) ,则可以执行以下操作来获取默认视图:
CollectionView myView;
Private myView As CollectionView
myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);
myView = CType(CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource), CollectionView)
或者,可以使用 在 XAML CollectionViewSource中指定筛选、排序和分组条件。
注解
ItemCollection 维护字符串、对象、XML 节点、元素和其他集合等项的集合。 使用 ItemsControl 中的数据 ItemCollection 来生成其内容。 如果要聚合多个集合,请将 分配给 CompositeCollectionItemsSource 的 ItemsControl属性。
Items使用 属性或 ItemsSource 属性指定应用于生成 内容的ItemsControl集合。 ItemsSource设置 属性后,Items集合将设为只读且大小固定。 这意味着,如果使用 ItemsSource 属性,则不能直接添加、删除或更改 中的 ItemCollection 项。
ItemCollection 是 , CollectionView 因此提供集合视图功能,例如排序、分组和筛选。 有关详细信息,请参阅SortDescriptions、Filter和GroupDescriptions。
有关集合视图的详细信息,请参阅 数据绑定概述。
属性
AllowsCrossThreadChanges |
获取指示创建的 CollectionView 线程能更改 SourceCollection 的值。 (继承自 CollectionView) |
CanChangeLiveFiltering |
获取一个值,该值指示集合视图是否支持打开或关闭实时筛选数据。 |
CanChangeLiveGrouping |
获取一个值,该值指示集合视图是否支持在真实时间中打开或关闭分组数据。 |
CanChangeLiveSorting |
获取一个值,该值指示集合视图是否支持在真实时间中打开或关闭排序数据。 |
CanFilter |
获取一个值,该值指示此集合视图是否支持筛选。 |
CanGroup |
获取一个值,该值指示此集合视图是否支持分组。 |
CanSort |
获取一个值,该值指示此集合视图是否支持排序。 |
Comparer |
返回可用于比较视图中的项的对象。 (继承自 CollectionView) |
Count |
获取集合中的记录数。 |
Culture |
获取或设置排序期间使用的区域性信息。 (继承自 CollectionView) |
CurrentItem |
获取视图中的当前项。 |
CurrentPosition |
获取视图中当前项的序号位置。 |
Dispatcher |
获取与此 Dispatcher 关联的 DispatcherObject。 (继承自 DispatcherObject) |
Filter |
获取或设置用于确定某个项是否适合包含在视图中的回调。 |
GroupDescriptions |
获取定义如何对项分组的 GroupDescription 对象的集合。 |
Groups |
获取根据 GroupDescriptions 构造的顶级组。 |
IsCurrentAfterLast |
获取一个值,该值指示视图的当前项是否超出集合的结尾。 |
IsCurrentBeforeFirst |
获取一个值,该值指示视图的当前项是否超出集合的开头。 |
IsCurrentInSync |
获取一个值,该值指示 CurrentItem 是否位于 CurrentPosition。 (继承自 CollectionView) |
IsDynamic |
获取一个值,该值指示基础集合是否提供更改通知。 (继承自 CollectionView) |
IsEmpty |
获取一个值,该值指示最终的(已筛选)视图是否为空。 |
IsInUse |
获取指示所有对象是否支持此 CollectionView 事件的值。 (继承自 CollectionView) |
IsLiveFiltering |
获取或设置一个值,该值指示是否启用实时筛选数据。 |
IsLiveGrouping |
获取或设置一个值,该值指示是否启用实时数据分组。 |
IsLiveSorting |
获取或设置一个值,该值指示是否启用实时排序。 |
IsRefreshDeferred |
获取一个值,该值指示是否有某个未完成的 DeferRefresh() 正在运行。 (继承自 CollectionView) |
Item[Int32] |
获取或设置位于给定的从零开始的索引处的项。 |
LiveFilteringProperties |
获取在真实时间中参与筛选数据的属性的字符集合。 |
LiveGroupingProperties |
获取在真实时间中参与分组数据的属性的字符集合。 |
LiveSortingProperties |
获取在真实时间中参与排序数据的属性的字符集合。 |
NeedsRefresh |
获取一个值,该值指示集合是否需要刷新。 |
SortDescriptions |
获取 SortDescription 对象的集合,这些对象描述集合中的项在视图中的排序方式。 |
SourceCollection |
获取位于此集合视图下的未排序和未筛选的集合。 |
UpdatedOutsideDispatcher |
获取一个值,该值指示是否有必要更新更改日志,因为 CollectionChanged 已在不同的线程上收到通知,而无需先进入用户界面 (UI) 线程调度程序。 (继承自 CollectionView) |
方法
事件
CollectionChanged |
在更改树时发生。 (继承自 CollectionView) |
CurrentChanged |
在 CurrentItem 更改后发生。 (继承自 CollectionView) |
CurrentChanging |
在 CurrentItem 正在更改时发生。 (继承自 CollectionView) |
PropertyChanged |
在属性值更改时发生。 (继承自 CollectionView) |
显式接口实现
扩展方法
Cast<TResult>(IEnumerable) |
将 IEnumerable 的元素强制转换为指定的类型。 |
OfType<TResult>(IEnumerable) |
根据指定类型筛选 IEnumerable 的元素。 |
AsParallel(IEnumerable) |
启用查询的并行化。 |
AsQueryable(IEnumerable) |
将 IEnumerable 转换为 IQueryable。 |