我正在通过创建这个简单的演示应用程序来学习Caliburn.Micro。我想先显示我的LoginView。然后,在输入凭据并关闭/停用LoginView之后,我想显示我的UserView。我使用LoginViewModel中的TryClose()方法来关闭屏幕。当我运行下面的代码时,e.WasClosed为true,执行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());
}
}
}
答案 0 :(得分:0)
第一次停用并关闭loginview
this.DeactivateItem(this.lvm, true);
然后激活用户视图
ActivateItem(new UserViewModel());
最终代码
this.DeactivateItem(this.lvm, true);
ActivateItem(new UserViewModel());