此示例演示如何在使用
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 概述
样式设置和模板化