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