ItemCollection Class

Definition

Holds the list of items that constitute the content of an ItemsControl.

[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
Inheritance
Attributes
Implements

Examples

If you have an ItemsControl, such as a ListBox that has content, you can use the Items property to access the ItemCollection, which is a view. Because it is a view, you can then use the view-related functionalities such as sorting, filtering, and grouping. Note that when ItemsSource is set, the view operations delegate to the view over the ItemsSource collection. Therefore, the ItemCollection supports sorting, filtering, and grouping only if the delegated view supported them.

The following example shows how to sort the content of a ListBox named myListBox. In this example, Content is the name of the property to sort by.

myListBox.Items.SortDescriptions.Add(
    new SortDescription("Content", ListSortDirection.Descending));
myListBox.Items.SortDescriptions.Add(New SortDescription("Content", ListSortDirection.Descending))

When you do this, the view might or might not be the default view, depending on how the data is set up on your ItemsControl. For example, when the ItemsSource property is bound to a CollectionViewSource, the view that you obtain using the Items property is not the default view.

If your ItemsControl is bound (you are using the ItemsSource property), then you can do the following to get the default view:

CollectionView myView;
Private myView As CollectionView
myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);
myView = CType(CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource), CollectionView)

Alternately, you can specify filtering, sorting, and grouping criteria in XAML using CollectionViewSource.

Remarks

ItemCollection maintains a collection of items such as strings, objects, XML nodes, elements, and other collections. An ItemsControl uses the data in the ItemCollection to generate its content. If you want to aggregate more than one collection, assign a CompositeCollection to the ItemsSource property of your ItemsControl.

Use either the Items property or the ItemsSource property to specify the collection that should be used to generate the content of your ItemsControl. When the ItemsSource property is set, the Items collection will be made read-only and fixed-size. This means that if you are using the ItemsSource property, you cannot add, delete, or change items in the ItemCollection directly.

ItemCollection is a CollectionView and therefore provides collection view functionalities, such as sorting, grouping, and filtering. For more information, see SortDescriptions, Filter, and GroupDescriptions.

For more information about collection views, see Data Binding Overview.

Properties

CanChangeLiveFiltering

Gets a value that indicates whether the collection view supports turning filtering data in real time on or off.

CanChangeLiveGrouping

Gets a value that indicates whether the collection view supports turning grouping data in real time on or off.

CanChangeLiveSorting

Gets a value that indicates whether the collection view supports turning sorting data in real time on or off.

CanFilter

Gets a value that indicates whether this collection view supports filtering.

CanGroup

Gets a value that indicates whether this collection view supports grouping.

CanSort

Gets a value that indicates whether this collection view supports sorting.

Count

Gets the number of records in the collection.

CurrentItem

Gets the current item in the view.

CurrentPosition

Gets the ordinal position of the current item within the view.

Filter

Gets or sets a callback used to determine if an item is suitable for inclusion in the view.

GroupDescriptions

Gets a collection of GroupDescription objects that defines how to group the items.

Groups

Gets the top-level groups that are constructed according to the GroupDescriptions.

IsCurrentAfterLast

Gets a value that indicates whether the current item of the view is beyond the end of the collection.

IsCurrentBeforeFirst

Gets a value that indicates whether the current item of the view is beyond the beginning of the collection.

IsEmpty

Gets a value that indicates whether the resulting (filtered) view is empty.

IsLiveFiltering

Gets or sets a value that indicates whether filtering data in real time is enabled.

IsLiveGrouping

Gets or sets a value that indicates whether grouping data in real time is enabled.

IsLiveSorting

Gets or sets a value that indicates whether sorting in real time is enabled.

Item[Int32]

Gets or sets the item at the given zero-based index.

LiveFilteringProperties

Gets a collection of strings that specify the properties that participate in filtering data in real time.

LiveGroupingProperties

Gets a collection of strings that specify the properties that participate in grouping data in real time.

LiveSortingProperties

Gets a collection of strings that specify the properties that participate in sorting data in real time.

NeedsRefresh

Gets a value that indicates whether the collection needs to be refreshed.

SortDescriptions

Gets a collection of SortDescription objects that describe how the items in the collection are sorted in the view.

SourceCollection

Gets the unsorted and unfiltered collection that underlies this collection view.

Methods

Add(Object)

Adds an item to the ItemCollection.

Clear()

Clears the collection and releases the references on all items currently in the collection.

Contains(Object)

Returns a value that indicates whether the specified item is in this view.

CopyTo(Array, Int32)

Copies the elements of the collection to an array, starting at a particular array index.

DeferRefresh()

Enters a defer cycle that you can use to merge changes to the view and delay automatic refresh.

GetItemAt(Int32)

Returns the item at the specified zero-based index in this view.

IndexOf(Object)

Returns the index in this collection where the specified item is located.

Insert(Int32, Object)

Inserts an element into the collection at the specified index.

MoveCurrentTo(Object)

Sets the specified item in the collection as the CurrentItem.

MoveCurrentToFirst()

Sets the first item in the view as the CurrentItem.

MoveCurrentToLast()

Sets the last item in the view as the CurrentItem.

MoveCurrentToNext()

Sets the item after the CurrentItem in the view as the CurrentItem.

MoveCurrentToPosition(Int32)

Sets the item at the specified index to be the CurrentItem in the view.

MoveCurrentToPrevious()

Sets the item before the CurrentItem in the view as the CurrentItem.

PassesFilter(Object)

Returns a value that indicates whether the specified item belongs to this view.

Remove(Object)

Removes the specified item reference from the collection or view.

RemoveAt(Int32)

Removes the item at the specified index of the collection or view.

Equals(Object) Inherited from Object
Equals(Object, Object) Inherited from Object
GetHashCode() Inherited from Object
GetType() Inherited from Object
MemberwiseClone() Inherited from Object
ReferenceEquals(Object, Object) Inherited from Object
ToString() Inherited from Object
AllowsCrossThreadChanges Inherited from CollectionView
ClearChangeLog() Inherited from CollectionView
ClearPendingChanges() Inherited from CollectionView
CollectionChanged Inherited from CollectionView
Comparer Inherited from CollectionView
Culture Inherited from CollectionView
CurrentChanged Inherited from CollectionView
CurrentChanging Inherited from CollectionView
DetachFromSourceCollection() Inherited from CollectionView
GetEnumerator() Inherited from CollectionView
IsCurrentInSync Inherited from CollectionView
IsDynamic Inherited from CollectionView
IsInUse Inherited from CollectionView
IsRefreshDeferred Inherited from CollectionView
NewItemPlaceholder Inherited from CollectionView
OKToChangeCurrent() Inherited from CollectionView
OnAllowsCrossThreadChangesChanged() Inherited from CollectionView
OnBeginChangeLogging(NotifyCollectionChangedEventArgs) Inherited from CollectionView
OnCollectionChanged(NotifyCollectionChangedEventArgs) Inherited from CollectionView
OnCollectionChanged(Object, NotifyCollectionChangedEventArgs) Inherited from CollectionView
OnCurrentChanged() Inherited from CollectionView
OnCurrentChanging() Inherited from CollectionView
OnCurrentChanging(CurrentChangingEventArgs) Inherited from CollectionView
OnPropertyChanged(PropertyChangedEventArgs) Inherited from CollectionView
ProcessCollectionChanged(NotifyCollectionChangedEventArgs) Inherited from CollectionView
ProcessPendingChanges() Inherited from CollectionView
PropertyChanged Inherited from CollectionView
Refresh() Inherited from CollectionView
RefreshOrDefer() Inherited from CollectionView
RefreshOverride() Inherited from CollectionView
SetCurrent(Object, Int32) Inherited from CollectionView
SetCurrent(Object, Int32, Int32) Inherited from CollectionView
IEnumerable.GetEnumerator() Inherited from CollectionView
UpdatedOutsideDispatcher Inherited from CollectionView
CheckAccess() Inherited from DispatcherObject
Dispatcher Inherited from DispatcherObject
VerifyAccess() Inherited from DispatcherObject

Explicit Interface Implementations

ICollection.IsSynchronized

This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

ICollection.SyncRoot

This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

IList.IsFixedSize

This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

IList.IsReadOnly

This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

IEditableCollectionView.AddNew()

Adds a new item to the collection.

IEditableCollectionView.CanAddNew

Gets a value that indicates whether a new item can be added to the collection.

IEditableCollectionView.CanCancelEdit

Gets a value that indicates whether the collection view can discard pending changes and restore the original values of an edited object.

IEditableCollectionView.CancelEdit()

Ends the edit transaction and, if possible, restores the original value to the item.

IEditableCollectionView.CancelNew()

Ends the add transaction and discards the pending new item.

IEditableCollectionView.CanRemove

Gets a value that indicates whether an item can be removed from the collection.

IEditableCollectionView.CommitEdit()

Ends the edit transaction and saves the pending changes.

IEditableCollectionView.CommitNew()

Ends the add transaction and saves the pending new item.

IEditableCollectionView.CurrentAddItem

Gets the item that is being added during the current add transaction.

IEditableCollectionView.CurrentEditItem

Gets the item in the collection that is being edited.

IEditableCollectionView.EditItem(Object)

Begins an edit transaction of the specified item.

IEditableCollectionView.IsAddingNew

Gets a value that indicates whether an add transaction is in progress.

IEditableCollectionView.IsEditingItem

Gets a value that indicates whether an edit transaction is in progress.

IEditableCollectionView.NewItemPlaceholderPosition

Gets or sets the position of the new item placeholder in the collection view.

IEditableCollectionView.Remove(Object)

Removes the specified item from the collection.

IEditableCollectionView.RemoveAt(Int32)

Removes the item at the specified position from the collection.

IEditableCollectionViewAddNewItem.AddNewItem(Object)

Adds the specified object to the collection.

IEditableCollectionViewAddNewItem.CanAddNewItem

Gets a value that indicates whether a specified object can be added to the collection.

IItemProperties.ItemProperties

Gets a collection that contains information about the properties that are available on the items in a collection.

IWeakEventListener.ReceiveWeakEvent(Type, Object, EventArgs)

Receives events from the centralized event manager.

Extension Methods

Cast<TResult>(IEnumerable)

Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Enables parallelization of a query.

AsQueryable(IEnumerable)

Converts an IEnumerable to an IQueryable.

Applies to