Expression Blend Interaction:如何设置触发器以查找Button的IsEnabled值?

时间:2011-08-16 19:53:07

标签: binding triggers expression-blend eventtrigger

我是使用Expression Blend 4的设计师,我们的环境是.NET 3.5。

这个问题对你们来说可能很简单,但这给我带来了很多问题。

我需要将交互应用于按钮,该按钮将在按钮启用时触发状态。

在按钮上,开发人员具有与IsEnabled属性关联的布尔值。我必须为EventTrigger提供一个EventName,我唯一能想到的是IsEnabledChanged。但是,当我运行应用程序时,这没有任何作用。

如何告诉触发器查找按钮的IsEnabled属性的布尔值的更改?

以下是代码:

<Button x:Name="SaveButton"
        Command="{Binding SaveCommand}" 
        IsEnabled="{Binding IsSaveAllowedBool}">

<i:Interaction.Triggers>
   <i:EventTrigger EventName="IsEnabledChanged">
        <ic:GoToStateAction StateName="MyState"/>
   </i:EventTrigger>
</i:Interaction.Triggers>

</Button>

1 个答案:

答案 0 :(得分:2)

我找到了解决问题的方法。

我在ContentControl元素周围包裹了一个Border,我试图根据布尔值显示/消失(我这样做是为了修改ControlTemplate - { {1}}元素没有与之关联的Border

然后我将ControlTemplate的{​​{1}}属性绑定到开发人员所拥有的同一个bool上。我修改了IsEnabled的{​​{1}},以便在布尔值更改时触发ContentControl

以下是代码:

ControlTemplate

此解决方案完美无缺。只是想我会分享。