ItemCollection 类

定义

包含构成 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 来生成其内容。 如果要聚合多个集合,请将 分配给 CompositeCollectionItemsSourceItemsControl属性。

Items使用 属性或 ItemsSource 属性指定应用于生成 内容的ItemsControl集合。 ItemsSource设置 属性后,Items集合将设为只读且大小固定。 这意味着,如果使用 ItemsSource 属性,则不能直接添加、删除或更改 中的 ItemCollection 项。

ItemCollection 是 , CollectionView 因此提供集合视图功能,例如排序、分组和筛选。 有关详细信息,请参阅SortDescriptionsFilterGroupDescriptions

有关集合视图的详细信息,请参阅 数据绑定概述

属性

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)

方法

Add(Object)

将某项添加到 ItemCollection 中。

CheckAccess()

确定调用线程是否可以访问此 DispatcherObject

(继承自 DispatcherObject)
Clear()

清除集合并释放集合中当前所有项的引用。

ClearChangeLog()
已过时.

从更改日志中清除所有挂起的更改。

(继承自 CollectionView)
ClearPendingChanges()

清除未处理更改为集合。

(继承自 CollectionView)
Contains(Object)

返回一个值,该值指示指定的项是否在此视图中。

CopyTo(Array, Int32)

从特定的数组索引开始,将集合的元素复制到数组中。

DeferRefresh()

进入延迟循环,该循环可用于将更改合并到视图并延迟自动刷新。

DetachFromSourceCollection()

CollectionView 中移除对基础集合的引用。

(继承自 CollectionView)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetEnumerator()

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

(继承自 CollectionView)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetItemAt(Int32)

返回此视图中位于从零开始的指定索引处的项。

GetType()

获取当前实例的 Type

(继承自 Object)
IndexOf(Object)

返回指定项在集合中的索引。

Insert(Int32, Object)

在集合中的指定索引处插入一个元素。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MoveCurrentTo(Object)

将集合中的指定项设置为 CurrentItem

MoveCurrentToFirst()

将视图中的第一项设置为 CurrentItem

MoveCurrentToLast()

将视图中的最后一项设置为 CurrentItem

MoveCurrentToNext()

将视图中位于 CurrentItem 之后的项设置为 CurrentItem

MoveCurrentToPosition(Int32)

将位于指定索引位置的项设置为视图中的 CurrentItem

MoveCurrentToPrevious()

将视图中位于 CurrentItem 之前的项设置为 CurrentItem

OKToChangeCurrent()

返回一个值,该值指示视图是否可以更改作为 CurrentItem 的项。

(继承自 CollectionView)
OnAllowsCrossThreadChangesChanged()

AllowsCrossThreadChanges 属性更改时发生。

(继承自 CollectionView)
OnBeginChangeLogging(NotifyCollectionChangedEventArgs)
已过时.

由基类调用,以通知派生类 CollectionChanged 事件已发送到消息队列。

(继承自 CollectionView)
OnCollectionChanged(NotifyCollectionChangedEventArgs)

引发 CollectionChanged 事件。

(继承自 CollectionView)
OnCollectionChanged(Object, NotifyCollectionChangedEventArgs)

引发 CollectionChanged 事件。

(继承自 CollectionView)
OnCurrentChanged()

引发 CurrentChanged 事件。

(继承自 CollectionView)
OnCurrentChanging()

引发一个不可取消的 CurrentChanging 事件。

(继承自 CollectionView)
OnCurrentChanging(CurrentChangingEventArgs)

用指定的参数引发 CurrentChanging 事件。

(继承自 CollectionView)
OnPropertyChanged(PropertyChangedEventArgs)

用指定的参数引发 PropertyChanged 事件。

(继承自 CollectionView)
PassesFilter(Object)

返回一个值,该值指示指定项是否属于此视图。

ProcessCollectionChanged(NotifyCollectionChangedEventArgs)

在派生类中重写时,在 UI 线程上处理单个更改。

(继承自 CollectionView)
ProcessPendingChanges()

确保此集合的所有待定更改都已被提交。

(继承自 CollectionView)
Refresh()

重新创建视图。

(继承自 CollectionView)
RefreshOrDefer()

刷新视图或指定视图在延迟循环完成后需要刷新。

(继承自 CollectionView)
RefreshOverride()

重新创建视图。

(继承自 CollectionView)
Remove(Object)

从集合或视图中移除指定的项引用。

RemoveAt(Int32)

移除位于集合或视图中的指定索引处的项。

SetCurrent(Object, Int32)

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

(继承自 CollectionView)
SetCurrent(Object, Int32, Int32)

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

(继承自 CollectionView)
ToString()

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

(继承自 Object)
VerifyAccess()

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

(继承自 DispatcherObject)

事件

CollectionChanged

在更改树时发生。

(继承自 CollectionView)
CurrentChanged

CurrentItem 更改后发生。

(继承自 CollectionView)
CurrentChanging

CurrentItem 正在更改时发生。

(继承自 CollectionView)
PropertyChanged

在属性值更改时发生。

(继承自 CollectionView)

显式接口实现

ICollection.IsSynchronized

此成员支持Windows Presentation Foundation (WPF) 基础结构,不应直接从代码中使用。

ICollection.SyncRoot

此成员支持Windows Presentation Foundation (WPF) 基础结构,不应直接从代码中使用。

IEditableCollectionView.AddNew()

将新项添加到集合。

IEditableCollectionView.CanAddNew

获取一个值,该值指示是否可以将新项添加到集合中。

IEditableCollectionView.CanCancelEdit

获取一个值,该值指示集合视图是否可以放弃挂起的更改并还原所编辑对象的原始值。

IEditableCollectionView.CancelEdit()

结束编辑事务,并还原项的原始值(如有可能)。

IEditableCollectionView.CancelNew()

结束添加事务并放弃挂起的新项。

IEditableCollectionView.CanRemove

获取一个值,该值指示是否可以从集合中移除项。

IEditableCollectionView.CommitEdit()

结束编辑事务并保存挂起的更改。

IEditableCollectionView.CommitNew()

结束添加事务并保存挂起的新项。

IEditableCollectionView.CurrentAddItem

获取当前添加事务过程中正在添加的项。

IEditableCollectionView.CurrentEditItem

获取集合中正在编辑的项。

IEditableCollectionView.EditItem(Object)

开始指定项的编辑事务。

IEditableCollectionView.IsAddingNew

获取一个值,该值指示是否正在执行添加事务。

IEditableCollectionView.IsEditingItem

获取一个值,该值指示是否正在执行编辑事务。

IEditableCollectionView.NewItemPlaceholderPosition

获取或设置集合视图中新项占位符的位置。

IEditableCollectionView.Remove(Object)

从集合中移除指定的项。

IEditableCollectionView.RemoveAt(Int32)

从集合中删除指定位置的项。

IEditableCollectionViewAddNewItem.AddNewItem(Object)

将指定的对象添加到集合。

IEditableCollectionViewAddNewItem.CanAddNewItem

获取一个值,该值指示是否可以向集合中添加指定的对象。

IEnumerable.GetEnumerator()

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

(继承自 CollectionView)
IItemProperties.ItemProperties

获取一个集合,该集合包含某集合中项的可用属性的相关信息。

IList.IsFixedSize

此成员支持Windows Presentation Foundation (WPF) 基础结构,不应直接从代码中使用。

IList.IsReadOnly

此成员支持Windows Presentation Foundation (WPF) 基础结构,不应直接从代码中使用。

INotifyCollectionChanged.CollectionChanged

在更改树时发生。

(继承自 CollectionView)
INotifyPropertyChanged.PropertyChanged

在属性值更改时发生。

(继承自 CollectionView)
IWeakEventListener.ReceiveWeakEvent(Type, Object, EventArgs)

接收集中事件管理器中的事件。

扩展方法

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

启用查询的并行化。

AsQueryable(IEnumerable)

IEnumerable 转换为 IQueryable

适用于

另请参阅