Delen via


Procedure: Een rij in een ListView stylen waarmee een GridView wordt geïmplementeerd

In dit voorbeeld wordt getoond hoe u een rij kunt opmaken in een ListView controle dat een GridViewView modus gebruikt.

Voorbeeld

U kunt een rij in een ListView-besturingselement stylen door een ItemContainerStyle in te stellen op het ListView-besturingselement. Stel de stijl in voor de items die worden weergegeven als ListViewItem objecten. De ItemContainerStyle verwijst naar de ControlTemplate objecten die worden gebruikt om de rijinhoud weer te geven.

Het volledige voorbeeld, waaruit de volgende voorbeelden worden geëxtraheerd, geeft een verzameling nummerinformatie weer die is opgeslagen in een XML-database. Elk nummer in de database heeft een beoordelingsveld en de waarde van dit veld geeft aan hoe een rij met nummerinformatie moet worden weergegeven.

In het volgende voorbeeld ziet u hoe u definieert ItemContainerStyle voor de ListViewItem objecten die de nummers in de nummersverzameling vertegenwoordigen. De ItemContainerStyle verwijzingen naar ControlTemplate objecten die aangeven hoe een rij met nummerinformatie moet worden weergegeven.

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

In het volgende voorbeeld ziet u een ControlTemplate dat de tekstreeks "Strongly Recommended" aan de rij toevoegt. Naar deze sjabloon wordt verwezen in de ItemContainerStyle en wordt weergegeven wanneer de waardering van het nummer een waarde van 5 (vijf) heeft. Het ControlTemplate bevat een GridViewRowPresenter object waarin de inhoud van de rij in kolommen wordt beschreven, zoals gedefinieerd door de GridView weergavemodus.

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

In het volgende voorbeeld wordt gedefinieerd GridView.

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

Zie ook