如何使用MessagingCenter将ToggledEventArgs发送给订阅者?

时间:2018-08-14 16:07:21

标签: xamarin xamarin.forms

我现在有以下代码:

CivToggledCmd = new Command<ToggledEventArgs>((e) => CivToggled(e));

public void CivToggled(ToggledEventArgs e)
   { App.DB.UpdateBoolSetting(SET.Civ, (bool)e.Value); }

我正在尝试将其转换为使用MessagingCenter,但想要一些有关如何将e的值传递给订阅者的建议。这是我到目前为止的内容:

CivToggledCmd = new Command<ToggledEventArgs>((e) =>  
   MessagingCenter.Send<SettingsPageViewModel>(this, "CivToggled");

MessagingCenter.Subscribe<SettingsPageViewModel>(this, "CivToggled",   (sender) => 
  { App.DB.UpdateBoolSetting(SET.Civ, (bool)e.Value); });

有人可以告诉我如何将事件传递给订阅者,以及如何使其接收事件以便更新数据库吗?

1 个答案:

答案 0 :(得分:1)

发送自变量

MessagingCenter.Send<SettingsPageViewModel, ToggledEventArgs>(this, "CivToggled", e);

订阅参数

MessagingCenter.Subscribe<SettingsPageViewModel, ToggledEventArgs>(this, "CivToggled", (s,e) => {
  App.DB.UpdateBoolSetting(SET.Civ, (bool)e.Value); 
});