使用Caliburn.Micro重用视图实例

时间:2016-04-18 06:05:24

标签: wpf caliburn.micro

我有一个包含ContentControls子视图的视图,如下所示

<ContentControl x:Name="DetailView" />

这很好用。当我将ContentControl的内容更改为另一个ViewModel时,它将加载另一个ViewModel和视图。但是当我从之前更改回ViewModel时,它将不会重用视图实例,而是创建一个新实例。注意:我没有为第一个ViewModel分配一个新实例,而是分配了同一个实例。

如何说Caliburn.Micro从以前重用视图实例而不是创建新的视图实例?

1 个答案:

答案 0 :(得分:1)

What IoC container是否用于创建ViewViewModels的实例?

只需创建<ContentControl/>的单个实例即可。让我演示如何在IoC容器Unity中创建单例:

container.RegisterType<IViewContentControl, ConentControl>(
                        new ContainerControlledLifetimeManager()); 

其中ContainerControlledLifetimeManager()表示您的应用程序中只有整个生命周期中的一个实例