<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ComponentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase" xmlns:local="clr-namespace:WpfApplication1" Title="WPF" Height="250" Width="200"> <Window.Resources> <local:Countries x:Key="countries"/> <CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource countries}}"> <CollectionViewSource.SortDescriptions> <ComponentModel:SortDescription PropertyName="Name" /> </CollectionViewSource.SortDescriptions> </CollectionViewSource> </Window.Resources> <Grid> <ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}" DisplayMemberPath="Name" /> </Grid> </Window> //File:Window.xaml.cs using System.Collections.ObjectModel; namespace WpfApplication1 { 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)); } } }