Как установить цвет фона ячейки в зависимости от индекса чередования DataGrid?

1

Я хотел бы изменить цвет фона ячейки в зависимости от индекса чередования 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>

Синий фон работает, но все ячейки имеют синий фон, а клетка не красная. Что здесь отсутствует?

Теги:
wpf
datagrid
triggers

1 ответ

1

Вам придется использовать DataTrigger вместо триггеров

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню