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函数没有被调用,没有构造函数被调用。。。没有显示任何内容。我不知所措,真的不知道该怎么办