【发布时间】:2013-06-05 14:35:50
【问题描述】:
这个问题是我的previous question 的后续/“第二次尝试”。
我正在使用 MvvmCross 框架构建一个跨平台的移动应用程序, 我想使用Messenger 插件来接收从我的代码中其他地方发布的事件通知。
我已尝试在ctor 中添加订阅,如下:
public class MyViewModel : BaseViewModel, IMyViewModel
{
private MvxSubscriptionToken _showMsgToken;
public MyViewModel ()
{
_showMsgToken = MvxMessenger.Subscribe<ShowMsg>(message => onShowNavigation(), MvxReference.Weak);
}
private void onShowNavigation()
{
//Do Stuff
}
}
现在,当我导航到此 ViewModel 时,一切正常并收到通知。
但是,当我离开并返回此 ViewModel 时,我可以看到 Subscription 正在向 MvxMessenger 订阅属性添加另一个条目,导致 onShowAdsNavigation() 为每个新事件触发两次。
那么,如何订阅 ViewModel 中的事件? 或者也许我需要找到一种方法来取消订阅事件?
【问题讨论】:
标签: windows-phone-8 xamarin mvvmcross