这个问题是我上一个问题的后续/“第二次尝试” 。
我正在使用 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
subscriptions 属性添加另一个条目,导致onShowAdsNavigation()
每个新事件触发两次。
那么,如何订阅 ViewModel 中的事件呢?或者也许我需要找到一种方法来取消订阅事件?