SourceInitialized的WPF EventTrigger
在我的窗口中,我想使用此代码SourceInitialized的WPF EventTrigger,wpf,events,window,mvvm-light,Wpf,Events,Window,Mvvm Light,在我的窗口中,我想使用此代码 <i:Interaction.Triggers> <i:EventTrigger EventName="SourceInitialized"> <command:EventToCommand Command="{x:Static wpf:Window.InitializeWindowProcessHookCommand}" /> </i:EventTrigger> </i:Inte
<i:Interaction.Triggers>
<i:EventTrigger EventName="SourceInitialized">
<command:EventToCommand Command="{x:Static wpf:Window.InitializeWindowProcessHookCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
将SourceInitialized
事件挂接到我所谓的窗口
类上的命令。
我使用的是MvvMLight,如果我使用Loaded
事件而不是SourceInitialized
,它是否工作正常,那么我们可以假设命令和进一步的逻辑正在工作。
此外,使用带有代码隐藏的事件是可行的,但我正在寻找使用EventTriggers
(如果可能)的解决方案
在查找一个可能的解决方案时,我偶然发现了一个主题,它与这个主题有关,OP points指出他成功地绑定到Loaded
事件,但无法绑定到SourceInitialized
[我]想为windows source InitializedEvent编写一个类似的事件,但发现Window.SourceInitializedEvent
未公开
有什么可能的解决办法吗
非常感谢在触发器有机会调用命令之前触发
SourceInitialized
事件,因此这将无法工作
此外,仅仅为了不必从同一视图的代码后面执行,而使用XAML标记中定义的EventTrigger
触发命令也没有多大意义。MVVM并不是要从视图中删除与视图相关的代码,它也不会破坏从中定义XAML标记的同一视图的代码中调用命令的模式
因此,从代码隐藏中的事件处理程序调用该命令或订阅另一个事件
正如您已经注意到的,无法使用在同一窗口的XAML标记中定义的EventTrigger
来处理窗口的SourceInitialized
事件