首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于EventTrigger的SourceInitialized

用于EventTrigger的SourceInitialized
EN

Stack Overflow用户
提问于 2017-07-13 21:11:02
回答 1查看 660关注 0票数 0

在我的窗口中,我想使用以下代码

代码语言:javascript
复制
<i:Interaction.Triggers>
    <i:EventTrigger EventName="SourceInitialized">
        <command:EventToCommand Command="{x:Static wpf:Window.InitializeWindowProcessHookCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

SourceInitialized事件挂接到我所谓的Window类上的命令。我使用的是MvvMLight EventToCommand,如果我使用Loaded事件而不是SourceInitialized,那么它可以很好地工作,所以我们可以假设命令和进一步的逻辑是工作的。此外,使用带有代码的事件可以工作,但我正在寻找一个使用EventTriggers的解决方案(如果可能的话)。

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

我想为windows源代码初始化事件编写一个类似的程序,但是发现Window.SourceInitializedEvent没有公开。

有什么可能的解决办法吗?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-14 10:24:05

SourceInitialized事件在触发器有机会调用命令之前触发,因此这将无法工作。

此外,使用XAML标记中定义的EventTrigger来激发命令也没有多大意义,这仅仅是为了不需要从同一视图的代码后面执行。MVVM并不是要从视图中删除与视图相关的代码,它也不会打破模式,从定义XAML标记的同一个视图的代码后面调用命令。

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

正如您已经注意到的,无法使用在同一窗口的XAML标记中定义的SourceInitialized来处理窗口的EventTrigger事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45090960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档