<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WpfApplication1="clr-namespace:WpfApplication1"
Title="WPF" Height="294" Width="160">
<Window.Resources>
<WpfApplication1:Countries x:Key="countries"/>
<CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource countries}}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Continent"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
<DataTemplate x:Key="groupingHeaderTemplate">
<Label VerticalAlignment="Center" Content="{Binding}" ></Label>
</DataTemplate>
</Window.Resources>
<Grid>
<ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}" DisplayMemberPath="Name">
<ItemsControl.GroupStyle>
<GroupStyle HeaderTemplate= "{StaticResource groupingHeaderTemplate}" />
</ItemsControl.GroupStyle>
</ItemsControl>
</Grid>
</Window>
//File:Window.xaml.vb
Imports System.Collections.ObjectModel
Namespace WpfApplication1
Public Class Country
Private m_name As String
Private m_continent As Continent
Public Sub New(name As String, continent As Continent)
Me.m_name = name
Me.m_continent = continent
End Sub
Public Property Name() As String
Get
Return m_name
End Get
Set
m_name = value
End Set
End Property
Public Property Continent() As Continent
Get
Return m_continent
End Get
Set
m_continent = value
End Set
End Property
End Class
Public Enum Continent
Europe
NorthAmerica
End Enum
Public Class Countries
Inherits Collection(Of Country)
Public Sub New()
Me.Add(New Country("Great Britan", Continent.Europe))
Me.Add(New Country("USA", Continent.NorthAmerica))
Me.Add(New Country("Canada", Continent.NorthAmerica))
End Sub
End Class
End Namespace