Caliburn Micro Screen挣扎

问题描述

在这里真的很挣扎。我一直在使用窗口管理器ShowDialog打开一个子视图模型,因为它是模态的,但是,显然,当我关闭它并重新打开它时,它正在重新初始化该视图。

我不想这样做,所以我尝试使用屏幕/导体...

Shellviewmodel是一个导体,它初始化2个视图模型MainMenuviewmodel和MainWindowviewmodel。

ShellView使用对MainWindowviewmodel的大量调用,并且ShellView包含MainMenuView的XAML声明。

MainMenuView中具有一个SettingsView,MainMenuviewmodel进行Windows管理器调用显示该Settingsviewmodel的对话框。

即使我将Settingsviewmodel作为MainMenuView的私有成员(仅创建一次),ShowDialog也可以重新实例化,显然这是行不通的。

现在,我尝试让MainMenuviewmodel继承Conductor.Collection.OneActive,并在构造函数调用base.OnActivate();

该视图模型中用于尝试打开Settingsviewmodel的命令为ActivateItem(settingsviewmodel);,在Settingsviewmodel中,该视图模型继承Screen并创建了一个函数

   protected override void OnActivate()
   {
        base.OnActivate();
   }

所有这些问题是,当我单击设置按钮时,它什么都不做。从MainMenuviewmodel调用ActivateItem,但是不会调用Settingsviewmodel上的OnActivate函数,没有调用构造函数...并且什么也不显示。我很茫然,真的不知道该怎么办...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...