Sdílet prostřednictvím


Postupy: Nastavení stylu řádku v zobrazení ListView s implementací GridView

Tento příklad ukazuje, jak stylovat řádek v ovládacím ListView prvku, který používá GridViewView režim.

Příklad

Řádek v ovládacím ListView prvku můžete stylovat nastavením ItemContainerStyleListView ovládacího prvku. Nastavte styl pro své položky, které jsou reprezentovány jako ListViewItem objekty. ItemContainerStyle Odkazuje na ControlTemplate objekty, které se používají k zobrazení obsahu řádku.

Kompletní ukázka, ze které se extrahují následující příklady, zobrazí kolekci informací o skladbě, které jsou uložené v databázi XML. Každá skladba v databázi má pole hodnocení a hodnota tohoto pole určuje, jak zobrazit řádek informací o skladbě.

Následující příklad ukazuje, jak definovat ItemContainerStyle pro ListViewItem objekty, které představují skladby v kolekci skladeb. Odkazy ItemContainerStyle na ControlTemplate objekty, které určují, jak zobrazit řádek informací o skladbě.

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

Následující příklad ukazuje ControlTemplate , který přidá textový řetězec "Strongly Recommended" do řádku. Na tuto šablonu se odkazuje a ItemContainerStyle zobrazí se, když má hodnocení skladby hodnotu 5 (pět). GridViewRowPresenter Obsahuje ControlTemplate objekt, který vyloží obsah řádku ve sloupcích definovaný režimem GridView zobrazení.

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

Následující příklad definuje 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>

Viz také