Condividi tramite


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

ListView

GridView

Concetti

Panoramica sul controllo ListView

Cenni preliminari su GridView

Altre risorse

Procedure relative al controllo ListView