一种方法是创建一个以相应方式运行的数据单元格模板(通过 controltemplates.triggers 集合)。
另一种方法是创建数据单元格样式并在给定绑定具有特定值时使用样式触发器设置背景(通过 style.triggers 集合)。
或者您可以使用混合方法。
在您的数据单元格模板中,您可能有一个包含所有内容的边框元素。例如,您可以为该边框元素创建内联样式。
<Border Width="Auto" Height="Auto" Padding="6,10,6,10" CornerRadius="0,0,20,20">
<Border.Style>
<Style TargetType="{x:Type Border}" >
<Setter Property="Background" Value="White" />
<Style.Triggers>
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Background" Value="{StaticResource GreenGradientSuccessBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
如果它位于数据模板中,边框元素的数据上下文将是包含的对象,并且边框触发器将在内容的“突出显示”属性时触发(假设内容是具有“突出显示”布尔值的类属性)为“真”。
如果您的内容是整数,并且您希望触发器在大于零时触发,则必须使用
<DataTrigger Binding="{Binding, Converter={StaticResource GreaterThanZeroConverter}}" Value="True">
GreaterThanZeroConverter 是一个合适的值转换器。