방법: GridView를 구현하는 ListView의 항목 그룹화
업데이트: 2007년 11월
이 예제에서는 ListView 컨트롤의 GridView 뷰 모드에 항목의 그룹을 표시하는 방법을 보여 줍니다.
예제
ListView에 항목 그룹을 표시하려면 CollectionViewSource를 정의해야 합니다. 다음 예제에서는 Catalog 데이터 필드의 값에 따라 데이터 항목을 그룹화하는 CollectionViewSource를 보여 줍니다.
<CollectionViewSource x:Key='src'
Source="{Binding Source={StaticResource MyData},
XPath=Item}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="@Catalog" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
다음 예제에서는 ListView의 ItemsSource를 이전 예제에서 정의한 CollectionViewSource로 설정합니다. 예제에서는 또한 Expander 컨트롤을 구현하는 GroupStyle을 정의합니다.
<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>
전체 샘플을 보려면 ListView 그룹화 샘플을 참조하십시오.