WPF.对于多触发条件,“属性"必须具有非空值 [英] WPF. Must have non-null value for 'Property' for multitrigger condition

查看:30
本文介绍了WPF.对于多触发条件,“属性"必须具有非空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有多重触发,条件之一不为空,所以如果 StowedAssetDetailedThumbnailViewModel != null 则设置模板

Have multitrigger, one of the conditions is not null, so if StowedAssetDetailedThumbnailViewModel != null then set template

<Style.Triggers>
    <MultiTrigger>
        <MultiTrigger.Conditions>
            <Condition Property="IsSelected" Value="true" />
            <Condition Binding="{Binding Path=StowedAssetDetailedThumbnailViewModel,
                                         Converter={StaticResource isNull}}"
                       Value="False"/>
        </MultiTrigger.Conditions>
        <Setter Property="Template" Value="{StaticResource SelectedTemplate}" />
    </MultiTrigger>
</Style.Triggers>

使用简单的转换器:

return isNull == null;

错误是属性必须具有非空值

更新:谢谢,最终的解决方案是

UPDATE: Thanks, the final solution is

<Style.Triggers>
    <MultiDataTrigger>
        <MultiDataTrigger.Conditions>
            <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}"
                       Value="true" />
            <Condition Binding="{Binding Path=StowedAssetDetailedThumbnailViewModel,
                                 Converter={StaticResource isNull}}"
                                 Value="false"/>
        </MultiDataTrigger.Conditions>

        <Setter Property="Template" Value="{StaticResource SelectedTemplate}" />
    </MultiDataTrigger>
</Style.Triggers>

推荐答案

在这种情况下,您需要使用 MultiDataTrigger.MultiTrigger 只能由依赖属性触发.

You'll want to use a MultiDataTrigger in this case. A MultiTrigger can only be triggered by dependency properties.

这篇关于WPF.对于多触发条件,“属性"必须具有非空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆