Freigeben über


Gewusst wie: Formatieren einer Zeile in einem ListView, in dem ein GridView implementiert ist

In diesem Beispiel wird dargestellt, wie Sie eine Zeile in einem ListView-Steuerelement formatieren, in dem ein GridView View-Modus implementiert ist.

Beispiel

Sie können eine Zeile in einem ListView-Steuerelement formatieren, indem Sie ItemContainerStyle für das ListView-Steuerelement festlegen. Legen Sie den Stil für die enthaltenen Elemente fest, die als ListViewItem-Objekte dargestellt werden. ItemContainerStyle verweist auf die ControlTemplate-Objekte, die zum Anzeigen des Zeileninhalts verwendet werden.

Im vollständigen Beispiel, aus dem die folgenden Beispiele stammen, wird eine Auflistung von Liedinformationen angezeigt, die in einer XML-Datenbank gespeichert sind. Jedes Lied in der Datenbank hat ein Bewertungsfeld. Der Wert dieses Felds gibt an, wie die Zeile mit Liedinformationen angezeigt werden soll.

Im folgenden Beispiel wird veranschaulicht, wie ItemContainerStyle für die ListViewItem-Objekte definiert wird, die die Lieder in der Liedauflistung darstellen. ItemContainerStyle verweist auf die ControlTemplate-Objekte, die angeben, wie die Zeilen mit Liedinformationen angezeigt werden.

   <ListView.ItemContainerStyle>
    <Style TargetType="{x:Type ListViewItem}"  >
      <Setter Property="Template"
            Value="{StaticResource Default}"/>
      <Style.Triggers>
        <DataTrigger Binding="{Binding XPath=@Rating}" Value="5">
                <Setter Property="Template" 
                Value="{StaticResource StronglyRecommended}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding XPath=@Rating}" Value="4">
          <Setter Property="Template" 
                Value="{StaticResource Recommended}"/>
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </ListView.ItemContainerStyle>

Das folgende Beispiel zeigt eine ControlTemplate, die der Zeile die Zeichenfolge "Strongly Recommended" hinzufügt. Auf diese Vorlage wird in ItemContainerStyle verwiesen. Sie wird angezeigt, wenn die Bewertung des Lieds einen Wert von 5 (fünf) hat. ControlTemplate enthält ein GridViewRowPresenter-Objekt, das den Inhalt der Zeile als Spalten anordnet, entsprechend der Definition durch den GridView-Ansichtsmodus.

<ControlTemplate x:Key="StronglyRecommended" 
                 TargetType='{x:Type ListViewItem}'>
  <StackPanel Background="Beige">
    <GridViewRowPresenter Content="{TemplateBinding Content}"
       Columns="{TemplateBinding GridView.ColumnCollection}"/>
    <TextBlock Background="LightBlue" Text="Strongly Recommended" />
  </StackPanel>
</ControlTemplate>

Im folgenden Beispiel wird GridView-definiert.

<ListView.View>
  <GridView ColumnHeaderContainerStyle="{StaticResource MyHeaderStyle}">
    <GridViewColumn Header="Name" 
                    DisplayMemberBinding="{Binding XPath=@Name}" 
                    Width="100"/>
    <GridViewColumn Header="Time" 
                    DisplayMemberBinding="{Binding XPath=@Time}" 
                    Width="80"/>
    <GridViewColumn Header="Artist"  
                    DisplayMemberBinding="{Binding XPath=@Artist}" 
                    Width="80" />
    <GridViewColumn Header="Disk" 
                    DisplayMemberBinding="{Binding XPath=@Disk}"  
                    Width="100"/>
  </GridView>
</ListView.View>

Siehe auch

Referenz

ListView

GridView

Konzepte

Übersicht über ListView

Erstellen von Formaten und Vorlagen

Weitere Ressourcen

Gewusst-wie-Themen zu ListView