WPF。对于多重触发条件,“属性”必须具有非空值

时间:2014-01-13 05:49:09

标签: c# wpf xaml

有多个触发器,其中一个条件不为null,所以如果StowedAssetDetailedThumbnailViewModel!= null则设置模板

<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;

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

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

<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>

1 个答案:

答案 0 :(得分:30)

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