这是WPF桌面应用程序,它使用Caliburn Micro for MVVM框架,并且内置了IoC容器。
我有一个选项卡控件和一个系统,供用户创建呈现特定视图的新选项卡。许多选项卡包含2个或多个视图,并且在这些选项卡中,始终始终在顶部显示一个特定的视图,并且所有选项卡都应为此特定视图包含相同的数据。
并非所有创建的选项卡中的视图都包含此特殊的“单人”视图。
我首先想到的是,该特定视图仅应实例化一次,而视图模型也应仅实例化一次。这样,可以节省内存,缩短加载时间,并且不存在任何消息传递对象。对吧?
有人可以确认这是可能的吗?并提示我该怎么做?我读过其他类似的问题和答案,但是我不知道如何判断视图是否被多次实例化。
编辑 我试图实现我的想法(稍后再发布代码)。我创建的可重用视图非常基础。我创建了2个“父”视图来保存可重用的视图。每个父视图都在TabControl.Items集合中。
在加载时,可重用视图显示在两个“选项卡”中的相应“父”视图内,因此它似乎可以工作,但是在一个选项卡的可重用视图中更改数据时,然后切换到另一个选项卡,即整个视图丢失-未渲染。
有什么想法吗?