ViewModel不会在MvvmCross中处理 - 如何管理订阅?

时间:2014-02-24 00:06:23

标签: c# android windows-phone xamarin mvvmcross

让我们考虑一个由两个视图和两个视图模型组成的简单应用程序。

FirstView上有一个按钮可以激活ShowViewModel,而第二个视图上有一个触发ShowViewModel的按钮。

假设FirstViewModel还订阅了ctor中MyMessage类型的消息。

场景:用户启动应用程序,按下FirstView上的按钮,然后按下SecondView上的按钮。现在我们有以下后台堆栈:FirstView-> SecondView-> FirstView。由于ShowViewModel总是创建一个新实例,我们实际上在内存中有两个FirstViewModel对象。他们每个人都订阅了MyMessages!

我该怎么做才能避免这种情况?我想确保同时只订阅每个ViewModel类的一个实例。我是否必须在视图中使用与平台相关的处理程序(如OnNavigatedTo / OnNavigatedFrom)来避免这种情况?或者是否有跨平台的方式?

0 个答案:

没有答案