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 。 例如,當 屬性系結至 CollectionViewSourceItemsSource ,您使用 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

取得或設定排序期間要使用的文化特性 (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)
已淘汰.

由基底類別 (Base Class) 呼叫,通知衍生類別,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

取得或設定集合檢視中新項目預留位置 (Placeholder) 的位置 (Position)。

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

適用於

另請參閱