<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>我有这段代码,我试着根据结果对象的不同属性来改变前景颜色。我的问题是,只有最后3个可以工作,而IsRejected或RilibakViolation不能工作。例:即使第一个是真的,它也不会显示为绿色。有没有其他方法可以让这段代码在所有这些情况下都能工作?
发布于 2018-10-24 15:37:31
一个不错的方法是创建一个MultiConverter并传递所有必要的属性(IsRejected、RilibakViolation、IsViolated等)。转换器将接收参数,然后决定返回哪种颜色。
这样,每次更改模型中的属性时,转换器都会被激活,并且前景也会相应地更改。
https://stackoverflow.com/questions/52961849
复制相似问题