我正在出于X的原因在我的Xamarin表单(便携式项目)中实现MessagingCenter。
-我必须使Project.WinPhone(Windows Phone 8.1)的MainPage.xaml.cs
与项目(PCL部分)的Pages/MyPersonalPage.xaml.cs
进行通信
我想我必须同时使用以下两个功能:
发送:Send<TSender> (TSender sender, string message)
订阅:Subscribe<TSender> (object subscriber, string message, Action<TSender> callback, TSender source = null)
也许我误会了,但是,如果<TSender>
在WinPhone项目中,而subscriber
在Portable项目中,则无法将它们链接到程序集。 (无限两种方式链接)
这意味着我无法访问MainPage.xaml.cs
或Pages/MyPersonalPage.xaml.cs
。那我该怎么做才能使它起作用?
否则,我的代码已经可以了,我可以从WinPhone部分捕获所需的Events
,也可以在PCL中进行所需的修改。唯一的问题是我需要调用此方法,以便在事件发生后进行修改
最佳答案
正如@AlessandroCaliaro的Answer on Forums Xamarin所述
在操作系统方面,我使用类似
Xamarin.Forms.MessagingCenter.Send<App> ((App)Xamarin.Forms.Application.Current, "OnBeaconServiceConnect");
在XF端,我用这个
MessagingCenter.Subscribe (this, "OnBeaconServiceConnect", (sender) => {
// do something
});
就是说->使用类似
所以
操作系统方面:
MainPage.xaml.cs
->这是下面的WinPhone8.1部分,但对于其他平台(Android,iOS,Windows,UWP)应该相同MessagingCenter.Send<Project.App>((Project.App)Xamarin.Forms.Application.Current, "Hi");
XF面:
ListenerPage.xaml.cs
MessagingCenter.Subscribe<App>((App)Application.Current, "Hi", (sender) => {
Debug.WriteLine("get hi !!!");
});
谢谢 !
关于xamarin.forms - Xamarin表单-两个不同页面/项目之间的MessagingCenter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38114888/