当视图模型的相关页面从后台删除时,从内存中清除视图模型-WP8.1



在我的应用程序中,有几个页面,比如-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光库。如果有人能找到更好的方法,请提出建议。

相关内容

  • 没有找到相关文章

最新更新