<Window xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'> <Window.Resources> <XmlDataProvider x:Key="MyData" XPath="/Info"> <x:XData> <Info xmlns=""> <Item ID="1" Name="Book 1" Price="$2.05" Author="Author A" Catalog="Business"/> <Item ID="2" Name="Book 2" Price="$0.00" Author="Author B" Catalog="Language"/> <Item ID="3" Name="Book 3" Price="$19.00" Author="Author C" Catalog="Language"/> <Item ID="4" Name="Book 4" Price="$81.50" Author="Author D" Catalog="Business"/> <Item ID="5" Name="Book 5" Price="$9.00" Author="Author E" Catalog="Health"/> <Item ID="6" Name="Book 6" Price="$18.50" Author="Author F" Catalog="Language"/> </Info> </x:XData> </XmlDataProvider> <CollectionViewSource x:Key='src' Source="{Binding Source={StaticResource MyData}, XPath=Item}"> <CollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="@Catalog" /> </CollectionViewSource.GroupDescriptions> </CollectionViewSource> </Window.Resources> <ListView ItemsSource='{Binding Source={StaticResource src}}' BorderThickness="0"> <ListView.GroupStyle> <GroupStyle> <GroupStyle.ContainerStyle> <Style TargetType="{x:Type GroupItem}"> <Setter Property="Margin" Value="0,0,0,5"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type GroupItem}"> <Expander IsExpanded="True" BorderBrush="#FFA4B97F" BorderThickness="0,0,0,1"> <Expander.Header> <DockPanel> <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="100"/> <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}"/> </DockPanel> </Expander.Header> <Expander.Content> <ItemsPresenter /> </Expander.Content> </Expander> </ControlTemplate> </Setter.Value> </Setter> </Style> </GroupStyle.ContainerStyle> </GroupStyle> </ListView.GroupStyle> <ListView.View> <GridView> <GridViewColumn Header="ID" DisplayMemberBinding="{Binding XPath=@ID}" Width="200" /> <GridViewColumn Header="Name" DisplayMemberBinding="{Binding XPath=@Name}" Width="240" /> <GridViewColumn Header="Price" DisplayMemberBinding="{Binding XPath=@Price}" Width="180" /> <GridViewColumn Header="Author" DisplayMemberBinding="{Binding XPath=@Author}" Width="180" /> </GridView> </ListView.View> </ListView> </Window>