Gewusst wie: Gruppieren von Elementen in einem ListView, in dem ein GridView implementiert ist

Aktualisiert: November 2007

In diesem Beispiel wird dargestellt, wie im GridView-Ansichtsmodus eines ListView-Steuerelements Elementgruppen angezeigt werden können.

Beispiel

Zum Anzeigen von Elementgruppen in einer ListView, definieren Sie eine CollectionViewSource. In folgendem Beispiel wird eine CollectionViewSource dargestellt, die Datenelemente entsprechend dem Wert des Catalog -Datenfelds gruppiert.

<CollectionViewSource x:Key='src' 
                      Source="{Binding Source={StaticResource MyData}, 
                               XPath=Item}">
  <CollectionViewSource.GroupDescriptions>
    <PropertyGroupDescription PropertyName="@Catalog" />
  </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

Im folgenden Beispiel wird die ItemsSource für die ListView auf die CollectionViewSource festgelegt, die im vorherigen Beispiel definiert wurde. Im Beispiel wird außerdem ein GroupStyle definiert, der ein Expander-Steuerelement implementiert.

<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>

Das vollständige Beispiel finden Sie unter Beispiel für ListView-Gruppierung.

Siehe auch

Konzepte

Übersicht über ListView

Übersicht über GridView

Referenz

ListView

GridView

Weitere Ressourcen

Gewusst-wie-Themen zu ListView

ListView-Beispiele