This documentation is archived and is not being maintained.

CollectionView.Filter Property

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

Namespace:  System.Windows.Data
Assembly:  PresentationFramework (in PresentationFramework.dll)

Public Overridable Property Filter As Predicate(Of Object)
Dim instance As CollectionView 
Dim value As Predicate(Of Object)

value = instance.Filter

instance.Filter = value
You cannot set this property in XAML.

Property Value

Type: System.Predicate(Of Object)
A delegate that represents the method used to determine if an item is suitable for inclusion in the view.




The current implementation does not support filtering.

Simpler implementations do not support filtering and throw a NotSupportedException. Use the CanFilter property to test if filtering is supported before assigning this property with a non-null value.

This example shows how to filter data in a view.

To create a filter, define a method that provides the filtering logic. The method is used as a callback and accepts a parameter of type object. The following method returns all the Order objects with the filled property set to "No", filtering out the rest of the objects.

Public Function Contains(ByVal de As Object) As Boolean 
    Dim order1 As Order = TryCast(de, Order)
    Return (order1.Filled Is "No")
End Function

You can then apply the filter, as shown in the following example. In this example, myCollectionView is a ListCollectionView object.

myCollectionView.Filter = new Predicate<object>(Contains);

To undo filtering, you can set the Filter property to Nothing:

myCollectionView.Filter = null;

For information about how to create or obtain a view, see How to: Get the Default View of a Data Collection. For the complete example, see Sorting and Filtering Items in a View Sample.

If your view object comes from a CollectionViewSource object, you apply filtering logic by setting an event handler for the Filter event. In the following example, listingDataView is an instance of CollectionViewSource.

listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);

The following shows the implementation of the example ShowOnlyBargainsFilter filter event handler. This event handler uses the Accepted property to filter out AuctionItem objects that have a CurrentPrice of $25 or greater.

private void ShowOnlyBargainsFilter(object sender, FilterEventArgs e)
    AuctionItem product = e.Item as AuctionItem;
    if (product != null)
        // Filter out products with price 25 or above 
        if (product.CurrentPrice < 25)
            e.Accepted = true;
            e.Accepted = false;

For the complete example, see Data Binding Demo.

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0