如何根据数据网格交替索引设置单元格的背景颜色

本文关键字:设置 索引 单元格 颜色 背景 何根 数据 数据网 网格 | 更新日期: 2023-09-27 18:04:28

我想根据DataGrid的交替索引更改单元格的背景颜色。我的模板看起来像这样:

<DataTemplate x:Key="MyTemplate">
  <Label x:Name="MyLabel">foobar</Label>
  <DataTemplate.Triggers>
    <Trigger Property="DataGridRow.AlternationIndex" Value="0">
      <Setter Property="Background" Value="Blue" TargetName="MyLabel"/>
    </Trigger>
    <Trigger Property="DataGridRow.AlternationIndex" Value="1">
      <Setter Property="Background" Value="Red" TargetName="MyLabel"/>
    </Trigger>
  </DataTemplate.Triggers>
</DataTemplate>

而我的DataGrid设置了属性:

   <DataGrid AlternationCount="2"> ... </DataGrid>

蓝色背景可以工作,但是所有单元格都有蓝色背景,没有单元格有红色背景。这里缺少了什么?

如何根据数据网格交替索引设置单元格的背景颜色

您必须使用DataTrigger而不是Triggers

<DataTemplate x:Key="MyTemplate">
  <Label x:Name="MyLabel">foobar</Label>
  <DataTemplate.Triggers>
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=(ItemsControl.AlternationIndex)}" Value="0">
      <Setter Property="Background" Value="Blue" TargetName="MyLabel"/>
    </DataTrigger >
     <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=(ItemsControl.AlternationIndex)}" Value="1">
      <Setter Property="Background" Value="Red" TargetName="MyLabel"/>
    </DataTrigger >
  </DataTemplate.Triggers>
</DataTemplate>