SourceInitialized 的 WPF 事件触发器

WPF EventTrigger for SourceInitialized

在我的 window 我想使用这个代码

<i:Interaction.Triggers>
    <i:EventTrigger EventName="SourceInitialized">
        <command:EventToCommand Command="{x:Static wpf:Window.InitializeWindowProcessHookCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

SourceInitialized 事件挂接到我所谓的 Window class 上的命令。 我正在使用 MvvMLight EventToCommand,如果我使用 Loaded 事件而不是 SourceInitialized,它可以完美运行,那么我们可以假设命令和进一步的逻辑正在运行。 此外,使用带有隐藏代码的事件,但我正在寻找使用 EventTriggers(如果可能)的解决方案。

在查找可能的解决方案时,我偶然发现了一个关于 MSDN 的主题,该主题就是关于这个主题的,并且 OP 指出他已成功绑定到 Loaded 事件,但是无法绑定到 SourceInitialized 以工作

[and I] want to write a similar one for windows source initialized event,  but find that Window.SourceInitializedEvent is not exposed

有什么可能的解决方案吗?

非常感谢

SourceInitialized 事件在您的触发器有机会调用命令之前触发,因此这将不起作用。

此外,使用 XAML 标记中定义的 EventTrigger 来触发命令没有多大意义,只是为了不必从代码中执行它-同一观点的背后。 MVVM 不是要从视图中消除与视图相关的代码,它也不会破坏从与您的 XAML 标记定义在同一视图的代码隐藏中调用命令的模式。

因此,从代码隐藏中的事件处理程序调用命令或订阅另一个事件。

正如您已经注意到的,无法使用 XAML 标记中定义的 EventTrigger 来处理 window 的 SourceInitialized 事件同样的 window.