在我的应用程序中,有几个页面,比如-a、B、C,它们与各自的ViewModels-VMA、VMB、VMC相关联。当用户到达页面C时,我希望从后台包装中删除页面B,并从ViewmodelLocator的容器中删除其ViewModel(VMB)。
结果应该b A->C
我是MVVM light的新手。有什么办法做到这一点吗?
更新
我可以通过设置框架的导航状态来从后台删除页面。如何删除视图模型引用以防止内存泄漏?
SimpleIoc提供注销(TClass实例)重载,以删除实例。
您可以在页面的终结器中使用它,但如果VM在其他页面上使用或存在多个实例,则必须检查副作用。
顾名思义,simpleIoc非常简单,并且没有提供自动方式。
现在我正在跟踪流,并将它们从ViewModelLocator中删除。这是我正在做的两个实例
1) 当用户从当前页面导航回来时2) 当用户导航到页面B时,该页面A将从历史记录中清除。我从ViewModelLocator的容器中删除了A的视图模型,并调用它的cleanup来清除它的资源。
我将在未来重新审视这一点,并尝试使用更新的mvvm光库。如果有人能找到更好的方法,请提出建议。