Wpf 卡利本微屏幕

Wpf 卡利本微屏幕,wpf,caliburn.micro,Wpf,Caliburn.micro,在这里真的很挣扎。我一直在使用窗口管理器ShowDialog打开一个子视图模型,因为它是模态的,但是,很明显,当我关闭并重新打开它时,它正在重新初始化该视图 我不想这样做,所以我尝试使用屏幕/导体 ShellViewModel是初始化两个ViewModel(MainMenuViewModel和MainWindowViewModel)的导体 ShellView使用大量对MainWindowViewModel的调用,ShellView包含MainMenuView的XAML声明 MainMenuVie

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

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

ShellViewModel是初始化两个ViewModel(MainMenuViewModel和MainWindowViewModel)的导体

ShellView使用大量对MainWindowViewModel的调用,ShellView包含MainMenuView的XAML声明

MainMenuView中有一个SettingsView,MainMenuView模型调用windows管理器以显示该SettingsView模型的对话框

即使我将视图模型设置为MainMenuView的私有成员,并且只创建了一次,ShowDialog也会重新实例化,显然这不起作用

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

该视图模型中尝试打开SettingsViewModel的命令是
ActivateItem(SettingsViewModel)
在SettingsViewModel中,视图模型继承屏幕,我创建了一个函数:

   protected override void OnActivate()
   {
        base.OnActivate();
   }
问题是,所有这些,当我点击设置按钮时,它什么也不做。ActivateItem从MainMenuViewModel调用,但是SettingsViewModel上的OnActivate函数没有被调用,没有构造函数被调用。。。没有显示任何内容。我不知所措,真的不知道该怎么办