最近需要用到Xamarin.forms中的MessagingCenter这里记录一下。
MessagingCenter分为发送方MessagingCenter.Send和订阅方MesagingCenter.Subscribe,MessagingCenter相当于广播,Send方发送广播,Subscirbe方是订阅方,只有订阅了广播,才能接收到消息。,需要注意的是两者中的第二个参数必须一样,才能实现连接起来,这样的好处是可以不局限在一个cs文件中写代码,可以在其他地方来接受广播。
Send分为不带参数和带参数,不带参数时当订阅方接受到广播后会直接运行接下来的代码,但是如果需要带参数的话就用第二个方法.
MessagingCenter.Send(new object(), "test");//不带参数的情况
MessagingCenter.Send(new object(), "test2", "附带的参数");//带参数的情况
订阅方收到广播的代码如下:
MessagingCenter.Subscribe<object>(this, "test", sender =>
{
/.../
});
MessagingCenter.Subscribe<object, string>(this, "test2", (sender, arg) =>
{
//arg是传过来的参数,可以直接使用。
/.../
});