有没有办法在eventrigger的行为中执行命令?

时间:2016-05-24 13:12:33

标签: wpf xaml data-binding triggers

标题几乎解释了这个问题。

我在模板的视图中有以下内容:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="SizeChanged">
        <i:InvokeCommandAction>
            <i:InvokeCommandAction.Command>
                <Binding Source="{StaticResource eventBindingHelper}" Path="DataC.SizeChangedCommand"></Binding>
            </i:InvokeCommandAction.Command>
            <i:InvokeCommandAction.CommandParameter>
                <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type igDP:LabelPresenter}}"/>
            </i:InvokeCommandAction.CommandParameter>
        </i:InvokeCommandAction>
    </i:EventTrigger>
</i:Interaction.Triggers>

如果命令绑定绑定到viewmodel,则它可以正常工作。但我想把它绑定到一个行为,我似乎找不到办法。

2 个答案:

答案 0 :(得分:1)

确保添加对Behaviors SDK的引用,然后您可以执行以下操作:

<Interactivity:Interaction.Behaviors>
  <Core:EventTriggerBehavior EventName="Tapped" SourceObject="{Binding ElementName="Control to trigger"}"> //Bind behaviour the the element you want to trigger
    <Core:InvokeCommandAction Command="{Binding Command}" CommandParameter="{Binding parameter}"/> // Bind command and parameter to behaviour
  </Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>

然后,您可以在EventTriggerBehaviour中的EventNames之间切换,以根据需要触发控件。

答案 1 :(得分:0)

我用过

类似于已接受的答案,但是具有不同的名称空间/类名称。