我有一个包含ContentControls子视图的视图,如下所示
<ContentControl x:Name="DetailView" />
这很好用。当我将ContentControl
的内容更改为另一个ViewModel时,它将加载另一个ViewModel和视图。但是当我从之前更改回ViewModel时,它将不会重用视图实例,而是创建一个新实例。注意:我没有为第一个ViewModel分配一个新实例,而是分配了同一个实例。
如何说Caliburn.Micro从以前重用视图实例而不是创建新的视图实例?
答案 0 :(得分:1)
What IoC container是否用于创建View
和ViewModels
的实例?
只需创建<ContentControl/>
的单个实例即可。让我演示如何在IoC容器Unity
中创建单例:
container.RegisterType<IViewContentControl, ConentControl>(
new ContainerControlledLifetimeManager());
其中ContainerControlledLifetimeManager()
表示您的应用程序中只有整个生命周期中的一个实例。