交互EventTrigger中的空EventName

时间:2017-08-23 17:20:30

标签: wpf mvvm dockpanel

请考虑以下代码:

<DockPanel>
    <i:Interaction.Triggers>
        <i:EventTrigger>
            <i:InvokeCommandAction Command="{Binding Path=MyCommand}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
    …

由于EventTrigger没有设置EventName属性,它将处理哪些事件?它正在处理一些事情,因为我看到这个命令已经执行了。

2 个答案:

答案 0 :(得分:2)

此代码会将您的命令激活为DockPanel.Loaded事件。

答案 1 :(得分:2)

Command事件发生时,Loaded会被调用。

如果我们查看EventTrigger类的源代码,我们可以看到DependencyProperty EventNameProperty具有Loaded作为其默认值。

public static readonly DependencyProperty EventNameProperty = DependencyProperty.Register("EventName", typeof (string), typeof (EventTrigger), (PropertyMetadata) new FrameworkPropertyMetadata((object) "Loaded", new PropertyChangedCallback(EventTrigger.OnEventNameChanged)));