交互事件触发器中的空事件名称
Empty EventName in Interaction EventTrigger
考虑以下代码:
<DockPanel>
<i:Interaction.Triggers>
<i:EventTrigger>
<i:InvokeCommandAction Command="{Binding Path=MyCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
…
由于EventTrigger
没有设置EventName
属性,它会处理什么事件?它肯定正在处理一些事情,因为我看到这个命令被执行了。
此代码将作为 DockPanel.Loaded
事件触发您的命令。
您的 Command
在 Loaded
事件发生时被调用。
如果我们查看 EventTrigger class 的源代码,我们可以看到 DependencyProperty EventNameProperty
的默认值是 Loaded
。
public static readonly DependencyProperty EventNameProperty = DependencyProperty.Register("EventName", typeof (string), typeof (EventTrigger), (PropertyMetadata) new FrameworkPropertyMetadata((object) "Loaded", new PropertyChangedCallback(EventTrigger.OnEventNameChanged)));
考虑以下代码:
<DockPanel>
<i:Interaction.Triggers>
<i:EventTrigger>
<i:InvokeCommandAction Command="{Binding Path=MyCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
…
由于EventTrigger
没有设置EventName
属性,它会处理什么事件?它肯定正在处理一些事情,因为我看到这个命令被执行了。
此代码将作为 DockPanel.Loaded
事件触发您的命令。
您的 Command
在 Loaded
事件发生时被调用。
如果我们查看 EventTrigger class 的源代码,我们可以看到 DependencyProperty EventNameProperty
的默认值是 Loaded
。
public static readonly DependencyProperty EventNameProperty = DependencyProperty.Register("EventName", typeof (string), typeof (EventTrigger), (PropertyMetadata) new FrameworkPropertyMetadata((object) "Loaded", new PropertyChangedCallback(EventTrigger.OnEventNameChanged)));