我有Button
使用ControlTemplate
,此模板包含多个MultiDataTriggers
,可根据用户互动和视图模型属性更改外观。因此,我不能使用传统的Triggers
。
有问题的触发器(示例)
XAML:
<DataTrigger Binding="{Binding IsPressed, RelativeSource={RelativeSource TemplatedParent}}" Value="True">
<Setter TargetName="Text" Property="Content" Value="IsPressed"/>
</DataTrigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Text" Property="Content" Value="IsPressed"/>
</Trigger>
DataTrigger失败,但普通触发器没有失败。为什么呢?
注意:
我尝试了多种绑定方法,例如AncestorType
,但没有成功。这些触发器也经过独立测试,同样存在问题。
答案 0 :(得分:1)
尝试{RelativeSource Self}
:
<DataTrigger Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="True">
<Setter TargetName="Text" Property="Content" Value="IsPressed"/>
</DataTrigger>