我正在学习复合应用程序的概念。我使用统一容器创建了 prism 应用程序。我的一个区域配置为内容控制 - 在这个区域中,我只想显示单个视图。
我正在以另一种方式使用视图注入:
object lastView;
// View injection
IRegion region = regionManager.Regions["MainRegion"];
var ordersView = container.Resolve<OrdersView>();
lastView = ordersView;
region.Add(ordersView, "OrdersView");
region.Activate(ordersView);
这个区域的视图经常切换。在我切换视图之前我使用region.remove(lastView)
并添加下一个视图,如上面的代码。
我不确定它是否是一个好的实现,我有几个问题:当我使用 region.remove 方法时,删除的视图是否正在处理?因为如果不是经过长时间运行,我将有严重的内存泄漏。在避免内存泄漏的同时,在区域中实现单一视图的最佳方法是什么?
谢谢