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.
在我的 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.