【问题标题】:Activate second screen after first screen has closed第一个屏幕关闭后激活第二个屏幕
【发布时间】:2014-06-02 01:44:56
【问题描述】:

我正在通过创建这个简单的演示应用程序来学习 Caliburn.Micro。我想先显示我的 LoginView。然后,在输入凭据并且 LoginView 已关闭/停用后,我想显示我的 UserView。我使用 LoginViewModel 中的 TryClose() 方法来关闭屏幕。当我运行下面的代码时,e.WasClosed 为真,执行了 ActivateItem(new UserViewModel()) 行,但重新激活了 LoginView。

如何让 LoginView 完全关闭/停用并激活 UserView?

代码如下:

class MainViewModel : Conductor<object>.Collection.OneActive
{
    LoginViewModel lvm = new LoginViewModel();

    public MainViewModel()
    {
        ActivateItem(lvm);

        lvm.Deactivated += new EventHandler<DeactivationEventArgs>(lvm_Deactivated);
    }

    void lvm_Deactivated(object sender, DeactivationEventArgs e)
    {
        if (e.WasClosed)
        {
            ActivateItem(new UserViewModel());
        }
    }
}

【问题讨论】:

    标签: caliburn.micro


    【解决方案1】:

    第一次停用并关闭登录视图

    this.DeactivateItem(this.lvm, true);
    

    然后激活用户视图

    ActivateItem(new UserViewModel());
    

    最终代码

    this.DeactivateItem(this.lvm, true);
    ActivateItem(new UserViewModel());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      相关资源
      最近更新 更多