首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个Datatrigger覆盖

多个Datatrigger覆盖
EN

Stack Overflow用户
提问于 2018-10-24 13:51:52
回答 1查看 39关注 0票数 0
代码语言:javascript
复制
<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不能工作。例:即使第一个是真的,它也不会显示为绿色。有没有其他方法可以让这段代码在所有这些情况下都能工作?

EN

回答 1

Stack Overflow用户

发布于 2018-10-24 15:37:31

一个不错的方法是创建一个MultiConverter并传递所有必要的属性(IsRejected、RilibakViolation、IsViolated等)。转换器将接收参数,然后决定返回哪种颜色。

这样,每次更改模型中的属性时,转换器都会被激活,并且前景也会相应地更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52961849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档