Megosztás a következőn keresztül:


Útmutató: Sor stílusa GridView-t implementáló ListView-ban

Ez a példa bemutatja, hogyan formázhat sorokat egy ListView vezérlőelemben, amely GridViewView módot használ.

példa

Egy ListView vezérlő sorát úgy stilizálhatja, hogy beállít egy ItemContainerStyle-et a ListView vezérlőn. Állítsa be az ListViewItem objektumként ábrázolt elemek stílusát. A ItemContainerStyle a sortartalom megjelenítéséhez használt ControlTemplate objektumokra hivatkozik.

A teljes minta, amelyből az alábbi példák származnak, egy XML-adatbázisban tárolt daladatok gyűjteményét jeleníti meg. Az adatbázis minden dala rendelkezik egy minősítési mezővel, és ennek a mezőnek az értéke határozza meg, hogyan jeleníthető meg a daladatok sora.

Az alábbi példa bemutatja, hogyan definiálhat ItemContainerStyle a dalgyűjteményben szereplő dalokat képviselő ListViewItem objektumokhoz. A ItemContainerStyle a ControlTemplate objektumokra hivatkozik, amelyek megadják, hogyan jeleníthető meg egy sor daladat.

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

Az alábbi példa egy ControlTemplate-t mutat be, amely hozzáadja "Strongly Recommended" szövegsztringet a sorhoz. Ez a sablon a ItemContainerStyle-ra van hivatkozva, és akkor jelenik meg, ha a dal értéke 5 (öt). A ControlTemplate tartalmaz egy GridViewRowPresenter objektumot, amely a GridView nézetmód által meghatározott oszlopok sorainak tartalmát tartalmazza.

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

Az alábbi példa meghatározza a GridView-t.

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

Lásd még