2016-04-21 62 views
1

我正在尝试解决如何从模态中返回对象。Xamarin Forms - 从模态中返回对象

我正在使用MessagingCenter。

我的代码如下,但它没有进入订阅。

对于注册的订阅:

MessagingCenter.Subscribe<Register, PublicUtilityDamage>(this,"UtilityCompanySelected", async (sender, Company) => { 
      await DisplayAlert("Company Selected", Company.DamageType, "OK"); 
     }); 

而对于发送代码是模态:

MessagingCenter.Send(company, "UtilityCompanySelected"); 

回答

2

你需要确保类型参数的发送者和用户匹配 - 第一个应该是发送消息的页面/类的类型。发送时,第三个参数是您传递的参数。

MessagingCenter.Subscribe<SelectDamageType, PublicUtilityDamage>(this,"UtilityCompanySelected", async (sender, Company) => { 
      await DisplayAlert("Company Selected", Company.DamageType, "OK"); 
     }); 

MessagingCenter.Send<SelectDamageType, PublicUtilityDamage>(this, "UtilityCompanySelected", company); 
+0

您好,以下代码行不起作用:MessagingCenter.Send (this,“UtilityCompanySelected”,company);.那是因为“this”指向模态页面。 –

+0

发送和订阅中的第一个参数需要引用发送消息的页面的类型。 – Jason

+0

“无法从SelectDamageType转换为注册”是错误消息,如果有任何用处:) –