我应该在哪里将MessageCenter的订阅放在Xamarin.Forms应用程序中?

时间:2018-08-19 05:43:17

标签: xamarin xamarin.forms

我看到了一些将人们放在页面构造函数中的示例。然后,他们取消订阅OnDisappearing()。

我有我的页面ViewModel发送消息,然后在后端页面C#中提取这些消息。但是对我来说,问题是页面构造一次,然后转到其他页面:

Navigation.PushAsync(new VersionPage())

,我的订阅丢失了。

将感谢一些有关如何处理此问题的建议。

1 个答案:

答案 0 :(得分:1)

我假设您已订阅Page1,并且要导航到Page2,然后在Page2中要致电发送消息?

在这种情况下我将要做的是,可以设置布尔值,以便在第1页消失时不会取消订阅。

我个人不喜欢使用消息传递中心。

我会做些什么,因为页面1或页面1的viewmodel会负责页面2的创建,在创建时,我会将事件绑定到页面2的消失,以便在页面2完成某件事或如果页面2完成某件事时对页面1做某事要求在Page2仍是主页的同时执行某项操作,然后创建一个自定义事件并将其绑定到该事件,以便在Page2中可以在需要时调用该事件。

您可以将第2页消失时的所有事件解除绑定,以清理内存丢失,我认为它在不需要时可以通过管理和装袋的方式来清理。