Procedura: raggruppare gli elementi di un controllo ListView che implementa una GridView
In questo esempio viene illustrato come visualizzare gruppi di elementi nella modalità di visualizzazione GridView di un controllo ListView.
Esempio
Per visualizzare gruppi di elementi in un controllo ListView, definire un oggetto CollectionViewSource. Nell'esempio seguente viene illustrato un oggetto CollectionViewSource che raggruppa elementi dei dati in base al valore del campo dati Catalog.
<CollectionViewSource x:Key='src'
Source="{Binding Source={StaticResource MyData},
XPath=Item}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="@Catalog" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
Nell'esempio seguente viene impostata la proprietà ItemsSource per ListView sull'oggetto CollectionViewSource definito nell'esempio precedente. Viene inoltre definita una proprietà GroupStyle che implementa un controllo 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>
Vedere anche
Riferimenti
Concetti
Panoramica sul controllo ListView