ControlTemplate DataTrigger无法正常工作,但普通触发器可以正常工作。为什么?

时间:2018-04-06 14:56:01

标签: wpf xaml

我有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,但没有成功。这些触发器也经过独立测试,同样存在问题。

1 个答案:

答案 0 :(得分:1)

尝试{RelativeSource Self}

<DataTrigger Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="True">
    <Setter TargetName="Text" Property="Content" Value="IsPressed"/>
</DataTrigger>