我们正在尝试使用当前的IoC提供商Ninject将一个普通的旧ViewModel与DataTemplates项目一起转换为Prism世界。
我已经创建了IServiceLocater和Bootstrapper的实现。使用区域导航和注册视图可以正常工作。另外ViewModelLocator.AutoWireViewModel
设置了我们的ViewModel。我面临的问题是,即使我将IRegionMemberLifetime.KeepAlive
设置为true,并在查询IsNavigationAware.IsNavigationTarget
时返回true,但视图模型永远不会被重用。只需浏览日志就会导致Prism解析ViewModel的新实例。有没有人有如何正确使用Ninject与Prism的参考实现,还是我应该放弃并切换到Unity?
答案 0 :(得分:1)
考虑导航的视图和ViewModel需要具有与导航Uri的基本名称相同的短或长类名。
对我来说错误的是我将StartView链接到名称“Start”。这意味着IRegion历史记录中的StartView不被视为导航目标“开始”的导航目标。