我想根据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>
蓝色背景有效,但所有单元格都有蓝色背景,没有单元格为红色背景。这里缺少什么?
答案 0 :(得分: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>