首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wpf DelegateCommand返回不着火

wpf DelegateCommand返回不着火
EN

Stack Overflow用户
提问于 2019-02-19 23:16:03
回答 1查看 333关注 0票数 0

当UserControl初始化事件绑定到InitializedCommand时,我使用Mvvm模式和视图,如下所示。

代码语言:javascript
复制
<i:Interaction.Triggers>
    <i:EventTrigger EventName="Initialized">
        <prism:InvokeCommandAction Command="{Binding Path=InitializedCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

和ViewModel如下所示。

代码语言:javascript
复制
public DelegateCommand InitializedCommand
{
    get
    {
       SelectedPopupType = PopupTypes.Downloading;
       IsShowPopup = true;
       return new DelegateCommand(delegate ()
       {
          *** DoSomething...***
       }
    }
}

其他事件(加载、卸载.)返回部件正常工作,但初始化的命令返回不起作用(DoSomething未调用)。

我想知道为什么..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 00:25:47

正如事件名称明确指出的那样,Initialized事件将在通过AttachedProperty设置Triggers之前触发。而Loaded事件将工作,因为它是在分配和加载所有属性值之后触发的。所以,这不管用。

Microsoft文档说:

如果您不需要读取元素属性,打算重置属性,并且不需要任何布局信息,那么Initialized可能是更好的操作事件。 如果您需要元素的所有属性都可用,并且您将设置可能重置布局的属性,则Loaded可能是要处理的更好的事件。

另外,为什么要为一个ICommand事件调用一个Initialized呢?为什么不能在代码背后设置一个EventHandler呢?

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

https://stackoverflow.com/questions/54776378

复制
相关文章

相似问题

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