问题描述
在这里真的很挣扎。我一直在使用窗口管理器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 (将#修改为@)