如何突出listview的每一行?

时间:2013-08-12 10:19:24

标签: c# wpf listview listviewitem

是否可以使用某种颜色突出显示列表视图中的每一行?例如,我有一个listview,其中包含数据表中绑定的数据。所以我想让第一行背景为白色,然后第二行为蓝色(例如),然后第三行为白色,第四行为蓝色,依此类推。此外,当我将新项目添加到列表视图时,我希望此效果自动继续。

1 个答案:

答案 0 :(得分:3)

[来自@Tim的评论你可以使用Google搜索并从here获得MS解决方案,或者查看@ Vijay的link ... ]

采用不同的方法。首先在ResourceDictionary中创建一个样式元素,或者如果您没有ResourceDictionary将其放在页面本身上

<Style x:Key="alternatingListViewItemStyle" TargetType="{x:Type ListViewItem}">
     <Style.Triggers>
         <!-- setting up triggers for alternate background colors -->
         <Trigger Property="ItemsControl.AlternationIndex" Value="1">
             <Setter Property="Background" Value="LightGray"></Setter>
         </Trigger>
         <Trigger Property="ItemsControl.AlternationIndex" Value="2">
             <Setter Property="Background" Value="White"></Setter>
         </Trigger>
     </Style.Triggers>
     <!-- setting row height here --> 
     <Setter Property="Height" Value="30" />
</Style>

现在在实际的ListView上设置ItemContanerStyle并设置AlternationCount属性:

<ListView Name="recordContainer" ItemContainerStyle="{StaticResource alternatingListViewItemStyle}" AlternationCount="2" >
   <ListView.View>
      <GridView>
         <!-- Just a few sample columns -->         
         <GridViewColumn Header="aField" />
         <GridViewColumn Header="anotherField" />
         <GridViewColumn Header="yetAnotherField" />
      </GridView>
   </ListView.View>
   <!-- Whatever you might have in here -->
</ListView>

我希望这会有所帮助。