ListCollectionView Class
Represents the collection view for collections that implement IList.
System.Windows.Threading::DispatcherObject
System.Windows.Data::CollectionView
System.Windows.Data::ListCollectionView
Assembly: PresentationFramework (in PresentationFramework.dll)
The ListCollectionView type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ListCollectionView | Initializes a new instance of the ListCollectionView class, using a supplied collection that implements IList. |
| Name | Description | |
|---|---|---|
![]() | ActiveComparer | Gets or sets the current active comparer that is used in sorting. |
![]() | ActiveFilter | Gets or sets the current active Filter callback. |
![]() | CanAddNew | Gets a value that indicates whether a new item can be added to the collection. |
![]() | CanAddNewItem | Gets a value that indicates whether a specified object can be added to the collection. |
![]() | CanCancelEdit | Gets a value that indicates whether the collection view can discard pending changes and restore the original values of an edited object. |
![]() | CanFilter | Gets a value that indicates whether the view supports callback-based filtering. (Overrides CollectionView::CanFilter.) |
![]() | CanGroup | Gets a value that indicates whether the collection view supports grouping. (Overrides CollectionView::CanGroup.) |
![]() | CanRemove | Gets a value that indicates whether an item can be removed from the collection. |
![]() | CanSort | Gets a value that indicates whether the collection view supports sorting. (Overrides CollectionView::CanSort.) |
![]() | Comparer | Returns an object that you can use to compare items in the view. (Inherited from CollectionView.) |
![]() | Count | Gets the estimated number of records. (Overrides CollectionView::Count.) |
![]() | Culture | Gets or sets the culture information to use during sorting. (Inherited from CollectionView.) |
![]() | CurrentAddItem | Gets the item that is being added during the current add transaction. |
![]() | CurrentEditItem | Gets the item in the collection that is being edited. |
![]() | CurrentItem | Gets the current item in the view. (Inherited from CollectionView.) |
![]() | CurrentPosition | Gets the ordinal position of the CurrentItem within the (optionally sorted and filtered) view. (Inherited from CollectionView.) |
![]() | CustomSort | Gets or sets a custom object that implements IComparer to sort items in the view. |
![]() | Dispatcher | Gets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.) |
![]() | Filter | Gets or sets a method that is used to determine whether an item is suitable for inclusion in the view. (Overrides CollectionView::Filter.) |
![]() | GroupBySelector | Gets or sets a delegate to select the GroupDescription as a function of the parent group and its level. |
![]() | GroupDescriptions | Gets a collection of GroupDescription objects that describe how the items in the collection are grouped in the view. (Overrides CollectionView::GroupDescriptions.) |
![]() | Groups | Gets the top-level groups. (Overrides CollectionView::Groups.) |
![]() | InternalCount | Gets the number of records in the InternalList. |
![]() | InternalList | Gets the complete and unfiltered underlying collection. |
![]() | IsAddingNew | Gets a value that indicates whether an add transaction is in progress. |
![]() | IsCurrentAfterLast | Gets a value that indicates whether the CurrentItem of the view is beyond the end of the collection. (Inherited from CollectionView.) |
![]() | IsCurrentBeforeFirst | Gets a value that indicates whether the CurrentItem of the view is before the beginning of the collection. (Inherited from CollectionView.) |
![]() | IsCurrentInSync | Gets a value that indicates whether the CurrentItem is at the CurrentPosition. (Inherited from CollectionView.) |
![]() | IsDataInGroupOrder | Gets or sets a value that indicates whether the list of items (after applying the sort and filters, if any) is already in the correct order for grouping. |
![]() | IsDynamic | Gets a value that indicates whether the underlying collection provides change notifications. (Inherited from CollectionView.) |
![]() | IsEditingItem | Gets a value that indicates whether an edit transaction is in progress. |
![]() | IsEmpty | Returns a value that indicates whether the resulting (filtered) view is empty. (Overrides CollectionView::IsEmpty.) |
![]() | IsGrouping | Gets a value that indicates whether there are groups in the view. |
![]() | IsRefreshDeferred | Gets a value that indicates whether there is an outstanding DeferRefresh in use. (Inherited from CollectionView.) |
![]() | ItemProperties | Gets a collection of objects that describes the properties of the items in the collection. |
![]() | NeedsRefresh | Gets a value that indicates whether the view needs to be refreshed. (Inherited from CollectionView.) |
![]() | NewItemPlaceholderPosition | Gets or sets the position of the new item placeholder in the ListCollectionView. |
![]() | SortDescriptions | Gets a collection of SortDescription objects that describes how the items in the collection are sorted in the view. (Overrides CollectionView::SortDescriptions.) |
![]() | SourceCollection | Returns the underlying unfiltered collection. (Inherited from CollectionView.) |
![]() | UpdatedOutsideDispatcher | Gets a value that indicates whether it has been necessary to update the change log because a CollectionChanged notification has been received on a different thread without first entering the user interface (UI) thread dispatcher. (Inherited from CollectionView.) |
![]() | UsesLocalArray | Gets a value that indicates whether a private copy of the data is needed for sorting and filtering. |
| Name | Description | |
|---|---|---|
![]() | AddNew | Starts an add transaction and returns the pending new item. |
![]() | AddNewItem | Adds the specified object to the collection. |
![]() | CancelEdit | Ends the edit transaction, and if possible, restores the original value to the item. |
![]() | CancelNew | Ends the add transaction and discards the pending new item. |
![]() | CheckAccess | Determines whether the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.) |
![]() | ClearChangeLog | Clears any pending changes from the change log. (Inherited from CollectionView.) |
![]() | CommitEdit | Ends the edit transaction and saves the pending changes. |
![]() | CommitNew | Ends the add transaction and saves the pending new item. |
![]() | Compare | Compares two objects and returns a value that indicates whether one is less than, equal to, or greater than the other. |
![]() | Contains | Returns a value that indicates whether a given item belongs to the collection view. (Overrides CollectionView::Contains(Object).) |
![]() | DeferRefresh | Enters a defer cycle that you can use to merge changes to the view and delay automatic refresh. (Inherited from CollectionView.) |
![]() | EditItem | Begins an edit transaction of the specified item. |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetEnumerator | Returns an object that you can use to enumerate the items in the view. (Overrides CollectionView::GetEnumerator().) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetItemAt | Retrieves the item at the specified position in the view. (Overrides CollectionView::GetItemAt(Int32).) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | IndexOf | Returns the index where the given data item belongs in the collection, or -1 if the index of that item is unknown. (Overrides CollectionView::IndexOf(Object).) |
![]() | InternalContains | Return a value that indicates whether the InternalList contains the item. |
![]() | InternalGetEnumerator | Returns an enumerator for the InternalList. |
![]() | InternalIndexOf | Returns the index of the specified item in the InternalList. |
![]() | InternalItemAt | Returns the item at the given index in the InternalList. |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | MoveCurrentTo | Sets the specified item to be the CurrentItem in the view. (Inherited from CollectionView.) |
![]() | MoveCurrentToFirst | Sets the first item in the view as the CurrentItem. (Inherited from CollectionView.) |
![]() | MoveCurrentToLast | Sets the last item in the view as the CurrentItem. (Inherited from CollectionView.) |
![]() | MoveCurrentToNext | Sets the item after the CurrentItem in the view as the CurrentItem. (Inherited from CollectionView.) |
![]() | MoveCurrentToPosition | Sets the item at the specified index to be the CurrentItem in the view. (Overrides CollectionView::MoveCurrentToPosition(Int32).) |
![]() | MoveCurrentToPrevious | Sets the item before the CurrentItem in the view as the CurrentItem. (Inherited from CollectionView.) |
![]() | OKToChangeCurrent | Returns a value that indicates whether the view can change which item is the CurrentItem. (Inherited from CollectionView.) |
![]() | OnBeginChangeLogging | Called by the base class to notify the derived class that a CollectionChanged event has been posted to the message queue. (Overrides CollectionView::OnBeginChangeLogging(NotifyCollectionChangedEventArgs).) |
![]() | OnCollectionChanged(NotifyCollectionChangedEventArgs) | Raises the CollectionChanged event. (Inherited from CollectionView.) |
![]() | OnCollectionChanged(Object, NotifyCollectionChangedEventArgs) | Raises the CollectionChanged event. (Inherited from CollectionView.) |
![]() | OnCurrentChanged | Raises the CurrentChanged event. (Inherited from CollectionView.) |
![]() | OnCurrentChanging() | Raises a CurrentChanging event that is not cancelable. (Inherited from CollectionView.) |
![]() | OnCurrentChanging(CurrentChangingEventArgs) | Raises the CurrentChanging event with the specified arguments. (Inherited from CollectionView.) |
![]() | OnPropertyChanged | Raises the PropertyChanged event using the specified arguments. (Inherited from CollectionView.) |
![]() | PassesFilter | Returns a value that indicates whether the specified item in the underlying collection belongs to the view. (Overrides CollectionView::PassesFilter(Object).) |
![]() | ProcessCollectionChanged | Handles CollectionChanged events. (Overrides CollectionView::ProcessCollectionChanged(NotifyCollectionChangedEventArgs).) |
![]() | Refresh | Re-creates the view. (Inherited from CollectionView.) |
![]() | RefreshOrDefer | Refreshes the view or specifies that the view needs to be refreshed when the defer cycle completes. (Inherited from CollectionView.) |
![]() | RefreshOverride | Recreates the view. (Overrides CollectionView::RefreshOverride().) |
![]() | Remove | Removes the specified item from the collection. |
![]() | RemoveAt | Removes the item at the specified position from the collection. |
![]() | SetCurrent(Object, Int32) | Sets the specified item and index as the values of the CurrentItem and CurrentPosition properties. (Inherited from CollectionView.) |
![]() | SetCurrent(Object, Int32, Int32) | Sets the specified item and index as the values of the CurrentItem and CurrentPosition properties. This method can be called from a constructor of a derived class. (Inherited from CollectionView.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
![]() | VerifyAccess | Enforces that the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.) |
| Name | Description | |
|---|---|---|
![]() | CollectionChanged | Occurs when the view has changed. (Inherited from CollectionView.) |
![]() | CurrentChanged | Occurs after the CurrentItem has changed. (Inherited from CollectionView.) |
![]() | CurrentChanging | Occurs when the CurrentItem is changing. (Inherited from CollectionView.) |
![]() | PropertyChanged | Occurs when a property value has changed. (Inherited from CollectionView.) |
| Name | Description | |
|---|---|---|
![]() ![]() | IComparer::Compare | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. |
![]() ![]() | IEnumerable::GetEnumerator | Returns an IEnumerator object that you can use to enumerate the items in the view. (Inherited from CollectionView.) |
![]() ![]() | INotifyCollectionChanged::CollectionChanged | Occurs when the view has changed. (Inherited from CollectionView.) |
![]() ![]() | INotifyPropertyChanged::PropertyChanged | Occurs when a property value changes. (Inherited from CollectionView.) |
When you bind to a data collection, you may want to sort, filter, or group the data. To do that, you use collection views. You can think of a CollectionView as the layer on top of the binding source collection that allows you to navigate and display the source collection based on sort, filter, and group queries, all without having to manipulate the underlying source collection itself. If the source collection implements the INotifyCollectionChanged interface, the changes raised by the CollectionChanged event are propagated to the views.
All collections have a default CollectionView. For all collections implementing IList, the ListCollectionView object is the default view object. The BindingListCollectionView is the collection view class used for collections that implement IBindingList. To get the default view, you use the GetDefaultView method. For an example, see How to: Get the Default View of a Data Collection.
For more information about collection views, see Data Binding Overview.
This example describes how to sort data in a view.
The following example creates a simple ListBox and a Button:
<Window x:Class="ListBoxSort_snip.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="ListBoxSort_snip" Height="300" Width="300"> <DockPanel> <ListBox Name="myListBox" DockPanel.Dock="Top"> <ListBoxItem>my</ListBoxItem> <!--Or you can set the content this way:--> <!--<ListBoxItem Content="my"/>--> <ListBoxItem>1</ListBoxItem> <ListBoxItem>Sort</ListBoxItem> <ListBoxItem>3</ListBoxItem> <ListBoxItem>ListBox</ListBoxItem> <ListBoxItem>2</ListBoxItem> </ListBox> <Button Click="OnClick" Width="30" Height="20" DockPanel.Dock="Top">Sort</Button> </DockPanel> </Window>
The Click event handler of the button contains logic to sort the items in the ListBox in the descending order. You can do this because adding items to a ListBox this way adds them to the ItemCollection of the ListBox, and ItemCollection derives from the CollectionView class. If you are binding your ListBox to a collection using the ItemsSource property, you can use the same technique to sort.
As long as you have a reference to the view object, you can use the same technique to sort the content of other collection views. For an example of how to obtain a view, see How to: Get the Default View of a Data Collection. For another example, see How to: Sort a GridView Column When a Header Is Clicked. For more information about views, see Binding to Collections in Data Binding Overview.
For an example of how to apply sorting logic in Extensible Application Markup Language (XAML), see How to: Sort and Group Data Using a View in XAML.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.


