<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication1" Title="WPF" Height="124" Width="124"> <Window.Resources> <local:Countries x:Key="countries"/> <CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource countries}}" Filter="CollectionViewSource_EuropeFilter" /> </Window.Resources> <Grid> <ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}" DisplayMemberPath="Name"/> </Grid> </Window> //File:Window.xaml.cs using System.Windows; using System.Windows.Data; using System.Collections.ObjectModel; namespace WpfApplication1 { public partial class Window1 : Window { public Window1() { InitializeComponent(); } private void CollectionViewSource_EuropeFilter(object sender, FilterEventArgs e) { Country country = e.Item as Country; e.Accepted = (country.Continent == Continent.Europe); } } public class Country { private string name; private Continent continent; public string Name { get{ return name;} set{name = value;} } public Continent Continent { get{return continent;} set{continent = value;} } public Country(string name, Continent continent) { this.name = name; this.continent = continent; } } public enum Continent { Europe, NorthAmerica, } public class Countries : Collection<Country> { public Countries() { this.Add(new Country("Great Britan", Continent.Europe)); this.Add(new Country("USA", Continent.NorthAmerica)); this.Add(new Country("Canada", Continent.NorthAmerica)); } } }