Cómo: Agrupar elementos en un control ListView que implementa un modo GridView
Actualización: noviembre 2007
En este ejemplo se muestra cómo mostrar grupos de elementos en el modo de vista GridView de un control ListView.
Ejemplo
Para mostrar grupos de elementos en un objeto ListView, defina CollectionViewSource. En el ejemplo siguiente se muestra un objeto CollectionViewSource que agrupa los elementos de datos según el valor del campo de datos Catalog.
<CollectionViewSource x:Key='src'
Source="{Binding Source={StaticResource MyData},
XPath=Item}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="@Catalog" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
En el ejemplo siguiente se establece la propiedad ItemsSource para el objeto ListView en el objeto CollectionViewSource definido por el ejemplo anterior. El ejemplo también define un objeto GroupStyle que implementa un control Expander.
<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>
Para obtener el ejemplo completo, vea Ejemplo ListView Grouping.
Vea también
Conceptos
Información general sobre ListView
Información general sobre GridView