有multitrigger,其中一个条件不为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>
Run Code Online (Sandbox Code Playgroud)
使用简单转换器:
return isNull == null;
Run Code Online (Sandbox Code Playgroud)
错误是 必须具有Property的非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>
Run Code Online (Sandbox Code Playgroud) 需要路线看起来像
#/routeName/?param1=aaaa¶m2=bbb
Run Code Online (Sandbox Code Playgroud)
加入了萨米
#/routeName/:param1/:param2
Run Code Online (Sandbox Code Playgroud)
和
#/routeName/?:param1&:param2
Run Code Online (Sandbox Code Playgroud)
它们都不起作用