<Style.Triggers>
<DataTrigger Binding="{Binding Result.IsRejected}" Value="True">
<Setter Property="Foreground" Value="Green"/>
</DataTrigger>
<DataTrigger Binding="{Binding Result.RilibakViolation}" Value="True">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding Result.RilibakViolation}" Value="False">
<Setter Property="Foreground" Value="{DynamicResource ControlsForegroundColor}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Result.IsViolated}" Value="True">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding Result.IsViolated}" Value="False">
<Setter Property="Foreground" Value="{DynamicResource ControlsForegroundColor}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Result.ResultIncluded}" Value="False">
<Setter Property="Foreground" Value="IndianRed"/>
</DataTrigger>
</Style.Triggers>
我有这段代码,尝试根据该Result对象的不同属性更改前景颜色。我的问题是只有最后3个工作和IsRejected或RilibakViolation无法工作。例如:即使第一个为true,也不会显示为绿色。这段代码是否还有其他方法可以使其在所有情况下都能正常工作?
答案 0 :(得分:0)
一个好方法是创建一个MultiConverter并传递所有必要的属性(IsRejected,RilibakViolation,IsViolated等)。转换器将接收参数,然后决定返回哪种颜色。
通过这种方式,每次更改模型中的属性时,都会激活转换器并相应地更改前景。