EventTrigger 从 DataContext 绑定到事件

bko*_*cic 5 c# data-binding wpf xaml

我正在尝试完成这样的事情:

<DataTemplate.Triggers>
    <EventTrigger RoutedEvent="{Binding MyEvent}">
        <BeginStoryboard Storyboard="{StaticResource MyAnimation}" />
    </EventTrigger>
</DataTemplate.Triggers>
Run Code Online (Sandbox Code Playgroud)

MyEvent 是来自我的 DataContext 的事件。

这不起作用,因为 RoutedEvent 不能是 Binding 表达式。知道如何做到这一点吗?事实上,我需要一些 EventTrigger 和 DataTrigger 的混合......

Blend SDK 的解决方案:

<Interactivity:Interaction.Triggers>
    <Interactivity:EventTrigger SourceObject="{Binding}" EventName="MyEvent">
        <ei:ControlStoryboardAction ControlStoryboardOption="Play">
            <ei:ControlStoryboardAction.Storyboard>
                <Storyboard>
                    ....
                </Storyboard>
            </ei:ControlStoryboardAction.Storyboard>
        </ei:ControlStoryboardAction>
    </Interactivity:EventTrigger>
</Interactivity:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)

H.B*_*.B. 4

Interactivity使用( Blend SDK )中的 EventTriggers可以触发任何对象上的任何事件,本机触发器仅适用于RoutedEvents通常仅在控件上具有的事件。