共用方式為


HOW TO:在實作 GridView 的 ListView 中設定資料列的樣式

本範例說明如何在能夠實作 GridView View 模式的 ListView 控制項中設定資料列的樣式。

範例

您可以在 ListView 控制項上設定 ItemContainerStyle,藉以設定 ListView 控制項中的資料列樣式。 針對表示為 ListViewItem 物件的項目,設定樣式。 ItemContainerStyle 會參考用於顯示資料列內容的 ControlTemplate 物件。

下列範例摘錄自完整範例,在完整範例中,會顯示 XML 資料庫中儲存的歌曲資訊集合。 資料庫中的每首歌曲都有評分欄位,這個欄位的值會指定如何顯示歌曲資訊的資料列。

下列範例顯示如何定義 ListViewItem 物件的 ItemContainerStyle,這些物件是表示歌曲集合中的歌曲。 ItemContainerStyle 會參考 ControlTemplate 物件,這些物件會指定如何顯示歌曲資訊的資料列。

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

下列範例顯示會將文字字串 "Strongly Recommended" 加入至資料列的 ControlTemplate。 這個範本是在 ItemContainerStyle 中參考,而且當歌曲評分值為 5 (五) 時會顯示出來。 ControlTemplate 包含 GridViewRowPresenter 物件,如 GridView 檢視模式所定義,這個物件會在資料行中配置資料列內容。

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

下列範例會定義 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>

請參閱

參考

ListView

GridView

概念

ListView 概觀

設定樣式和範本

其他資源

ListView HOW TO 主題