如果属性为null,如何在触发器中设置属性?
<Style.Triggers>
<Trigger Property="ContextMenu" Value="{x:Null}">
<Setter Property="ContextMenu" Value="{DynamicResource ContextMenu}"/>
</Trigger>
</Style.Triggers>
答案 0 :(得分:0)
你试过吗?
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=ContextMenu}" Value="{x:Null}">
<Setter Property="ContextMenu" Value="{DynamicResource ContextMenu}"/>
</DataTrigger>
</Style.Triggers>
但实际上你应该在控件的样式中设置上下文菜单,然后控件的任何用户都可以在派生样式或控件属性中覆盖它。
答案 1 :(得分:0)
您可以直接在Style中设置ContextMenu,如下所示:
<Style ...>
<Setter Property="ContextMenu" Value="{DynamicResource ContextMenu}"/>
</Style>
如果用户明确设置了ContextMenu,那么它将优先于Style setter。有关订单或优先顺序,请参阅此MSDN article。您的样式设置器属于#8,而用户设置位于#3。