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