将数据从平台特定页面传递到Xamarin.Forms中的PCL

时间:2018-10-19 07:46:51

标签: c# xamarin.forms

我已经使用PageRenderer创建了特定于平台的页面,单击按钮时需要从该页面传回数据。

我已经看过使用DependancyService,但是我能找到的只是从PCL调用平台项目中的方法,我需要做相反的事情,这可能吗? 还是建议我使用传统的Event-EventHandler,这是Xamarin中的首选方法,还是在Xamarim.Forms中有更好的方法来处理?

需要传回的数据是一个对象;

public class CallAcknowledged
{
    public string CustomerName { get; set; }
    public DateTime CallAcknowledged { get; set; }
    public byte[] Signature { get; set; }
}

1 个答案:

答案 0 :(得分:1)

我已经在Xamarin论坛上的@AlessandroCaliaro的这篇文章中找到了答案 https://forums.xamarin.com/discussion/70235/xamarin-forms-messagingcenter-between-two-differents-pages-projects

我需要使用PCLProjectName.App作为消息的来源,并且它实现了梦想。

发件人

MessagingCenter.Send<MyMobileApp.App, string>((MyMobileApp.App)Xamarin.Forms.Application.Current, "Acknowledged", fullNameValue);

订户

MessagingCenter.Subscribe<MyMobileApp.App, string>((App)Application.Current, "Acknowledged", (sender, arg) =>
        {
            Debug.WriteLine("Full Name : " + arg);
        });

感谢@MarkusMichel向我指出正确的方向