【发布时间】:2019-10-16 10:58:54
【问题描述】:
我创建这个应用程序是为了回答一些有关 MessagingCenter 的问题,但由于专门在 Android 平台上运行应用程序时出现问题,我无法继续编写代码,如果您知道可能出了什么问题,请帮助我。感谢您的支持。
我尝试将结果页面更改为消息中心订阅中新结果视图的方式,但我不知道发生了什么,对我来说就像在订阅中找不到消息一样。
应用链接(GitHub)
在结果视图中:
public void Registro()
{
MessagingCenter.Subscribe<ResultView>(this, "DisplayAlert", message =>
{
this.DisplayAlert("Alerta de Registro", "Mensagem DisplayAlert com registro Enviada", "Ok");
});
}
在主页中:
ResultView ResultPage = new ResultView();
private void GoPaginaResultComRegistro(object sender, EventArgs e)
{
ResultPage.Registro();
MessagingCenter.Send<ResultView>(ResultPage, "DisplayAlert");
MessagingCenter.Unsubscribe<ResultView>(ResultPage, "DisplayAlert");
this.Navigation.PushAsync(ResultPage);
}
我在发送消息时在另一个屏幕上等待 DisplayAlert,但应用程序只是跳过了订阅内的代码。
【问题讨论】:
-
这似乎是对 MessagingCenter 的复杂使用。如果您已经有一个 ResultPage 实例并且即将导航到它,为什么不直接在构造函数上传递一个参数,或者使用公共属性/方法?
-
该应用程序的目的是练习使用 MessagingCenter,但如果您能找到另一种简单的方法来完成相同的任务,如果您能告诉我如何操作,我将不胜感激。
标签: xamarin.forms messagingcenter