我有一些ViewModels从Screen对象派生的,我ShellViewModel从Conductor<T>.Collection.OneActive.
如果我提出新的ActivateItem请求,例如:
ActivateItem(new AViewModel());
关联的视图在 my 中被激活ContentControl,很好。如果我再提出另一个请求:
ActivateItem(new BViewModel());
AViewModelisdeactivated和BViewModelis made active,然而,AViewModel也是封闭的。
为了防止ViewModel关闭,我将已经实例化的实例传递给ActivateItem方法。这似乎按我的意愿工作。
我的问题是如何跟踪ViewModel已经创建的 s,我并不总是想创建新实例。这样做的原因是我想保持 a 的状态,View\ViewModel即使用户导航到另一个View只是为了返回。我可以Collection在我的 a 中维护它们,也ShellViewModel可以Items Collection在Conductor.
其中哪一个是正确的(如果有的话),还是有更好的解决方案来解决我的问题?