我正在为 UWP 应用程序使用 Prism v6.3.0。我正在为 DI 使用 Unity Container。出现以下问题:每当我的应用程序导航到给定视图(例如 MainPage)时,似乎都会创建相应 ViewModel 的新实例。我想重用同一个虚拟机(基本上,只创建一次)。
我有:prismMvvm:ViewModelLocator.AutoWireViewModel="True"
在所有页面的 XAML 中。
我的代码从不直接调用任何 VM 构造函数,所以不能这样。我还在 ConfigureContainer 覆盖中仅注册服务。
我尝试的是在 App.xaml.cs 中注册视图(似乎没有区别):
private void RegisterViews()
{
Container.RegisterInstance(new LoginPage(), new ContainerControlledLifetimeManager());
Container.RegisterInstance(new SettingsPage(), new ContainerControlledLifetimeManager());
Container.RegisterInstance(new MainPage(), new ContainerControlledLifetimeManager());
}
有什么提示吗?