共用方式為


操作說明:為實作 GridView 之 ListView 中的資料列設定樣式

這個範例示範如何在使用 GridViewView 模式的 ListView 控制項中設定資料列的樣式。

範例

您可以在 控制項上設定 ItemContainerStyle ,以設定 控制項中的資料 ListViewListView 列樣式。 設定其專案以 物件表示 ListViewItem 的樣式。 ControlTemplate參考 ItemContainerStyle 用來顯示資料列內容的物件。

從中擷取下列範例的完整範例會顯示儲存在 XML 資料庫中的歌曲資訊集合。 資料庫中的每一首歌都有一個評等欄位,而此欄位的值會指定歌曲資訊資料列的顯示方式。

下列範例示範如何定義 ItemContainerStyle 代表 ListViewItem 歌曲集合中歌曲的物件。 參考 ItemContainerStyleControlTemplate 物件,指定如何顯示歌曲資訊列。

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

下列範例顯示 ControlTemplate 將文字字串 "Strongly Recommended" 加入資料列的 。 此範本會在 中 ItemContainerStyle 參考,當歌曲的評等值為 5 (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>

另請參閱