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 (将#修改为@)