xamarin.forms - Xamarin Forms - 两个不同页面/项目之间的 MessagingCenter

标签 xamarin.forms messaging

我正在寻找实现 MessagingCenter出于 X 原因进入我的 Xamarin 表单(可移植项目)。

-我必须让沟通MainPage.xaml.cs Project.WinPhone (Windows Phone 8.1) 与 Pages/MyPersonalPage.xaml.cs项目简介 (PCL 部分)

我想我必须同时使用以下两个功能:

发送 :Send<TSender> (TSender sender, string message)
订阅 :Subscribe<TSender> (object subscriber, string message, Action<TSender> callback, TSender source = null)
也许我误解了,如果 <TSender>在 WinPhone 项目和 subscriber在可移植项目中,我无法将它们链接到程序集。 (无限二路链接)

这意味着我无法访问 MainPage.xaml.csPages/MyPersonalPage.xaml.cs . 那么,我该怎么做才能让它发挥作用?

我的代码已经没问题了,否则我可以 catch Events我需要从 WinPhone 部分获得,我也可以在 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 Forms - 两个不同页面/项目之间的 MessagingCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38114888/

相关文章:

c# - 如何在自定义 Xamarin.Forms ViewCell 的行之间添加分隔符?

c# - 无代理消息传递 C#

messaging - 避免脑裂、投票和法定人数

Erlang:如何在消息系统中跟踪发件人?

c# - 如何处理 Xamarin.forms webview 中的加载错误

c# - Xamarin 表单 contentpresenter 排错行并在电话上为空

android - 无法从 Android 上的 Xamarin.Forms 中的依赖项服务打开文件

xaml - 如何更改 Shell 弹出菜单的宽度/高度

.net - 在评估消息队列时,开发人员/架构师应该寻找什么品质?

java - JMS 多线程概念与 MQ