wpf datagrid交替行着色

Rob*_*ben 41 wpf xaml styles wpf-controls wpfdatagrid

我试过这种方法..没有运气..

 <Style TargetType="{x:Type DataGridRow}">
  <Style.Triggers>
      <Trigger Property="ItemsControl.AlternationIndex" Value="0">
          <Setter Property="Foreground" Value="Red" />
     </Trigger>
  </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

有没有办法获得行索引?我甚至试过了

<DataTrigger Binding="{Binding AlternationIndex}" Value="0">
    <Setter Property="Foreground" Value="Green"></Setter>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

Rob*_*ben 40

最后,这是我最终用于一般设置备用行颜色的内容.

<Style TargetType="{x:Type DataGrid}">
    <Setter Property="Background" Value="#FFF" />
    <Setter Property="AlternationCount" Value="2" />
</Style>

 <Style TargetType="{x:Type DataGridRow}">
    <Style.Triggers>
        <Trigger Property="ItemsControl.AlternationIndex" Value="0">
            <Setter Property="Background" Value="#CCC"></Setter>
        </Trigger>
        <Trigger Property="ItemsControl.AlternationIndex" Value="1">
            <Setter Property="Background" Value="#EEE"></Setter>
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)


mat*_*zek 37

除非已经完成,否则必须设置DataGrid的AlternationCount属性:

<DataGrid AlternationCount="2"
          ... />
Run Code Online (Sandbox Code Playgroud)

您还应检查Foreground属性是否用于DataGridRow中的任何Control.尝试设置Background属性以测试交替内容.


小智 27

尝试设置交替背景,如下所示:

  AlternationCount="2" AlternatingRowBackground="Bisque"
Run Code Online (Sandbox Code Playgroud)


Ala*_*392 5

尝试这个

  <DataGrid AlternationCount="2"
            AlternatingRowBackground="Salmon" ........
Run Code Online (Sandbox Code Playgroud)

  • [@Th3G33k](http://stackoverflow.com/a/35301853/1708751)已经建议了这个答案。 (4认同)