Come raggruppare elementi in un ListView che implementa un 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 ListView, definire un CollectionViewSource. Nell'esempio seguente viene illustrato un CollectionViewSource che raggruppa gli elementi di 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, la ItemsSource per il ListView viene impostata sul CollectionViewSource definito nell'esempio precedente. L'esempio definisce anche un 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
- ListView
- GridView
- Argomenti di istruzioni
- Panoramica di ListView
- Panoramica di GridView
.NET Desktop feedback