Wednesday, January 15, 2014

#986 – Filtering a ListBox Using a CollectionViewSource

When populating a ListBox from a CollectionViewSource, you can also filter the data.  Below is an example of a ListBox that is bound to a CollectionViewSource.

    <CollectionViewSource x:Key="cvsActors" Source="{Binding ActorList}" >
            <scm:SortDescription PropertyName="LastName" />
    <ListBox Name="lbActors" Margin="15" Width="200" Height="200"
             ItemsSource="{Binding Source={StaticResource cvsActors}}"/>
    <CheckBox Content="Only Joans" IsChecked="{Binding OnlyJoans}"

In code, we add a handler for the Filter event of the CollectionViewSource.  The handler is called for each item in the list.