Ala*_*an2 1 xamarin xamarin.forms
我正在研究使用一种或另一种方法,特别是方法2。有人能告诉我使用第二种方法优于第一种方法的优缺点。
方法1-ViewModel.cs
PTBtnCmd = new Command<Templates.WideButton>((btn) =>
MessagingCenter.Send<CFSPageViewModel, Templates.WideButton>(
this, "PTBtn", btn));
Run Code Online (Sandbox Code Playgroud)
方法1-MyPage.xaml.cs(此文件中的SetLang等..方法)
MessagingCenter.Subscribe<CFSPageViewModel, Templates.WideButton>(
this, "PTBtn", (s, btn) =>
{
Utils.SetState(btn.Text, vm.PT);
SetLangVisible(btn.Text);
SetLangSelected(btn.Text);
vm.CFSMessage = Settings.cfs.TextLongDescription();
});
Run Code Online (Sandbox Code Playgroud)
要么
方法2-ViewModel.cs(此文件中的SetLang等..方法)
PTBtnCmd = new Command<string>(SetMode);
private void SetMode(string btnText)
{
Utils.SetState(btnText, PT);
SetLangVisible(btnText);
SetLangSelected(btnText);
CFSMessage = Settings.cfs.TextLongDescription();
}
Run Code Online (Sandbox Code Playgroud)
还希望听到有关将方法添加到ViewModel.cs代码中的想法的评论。将它们放在另一个文件中会更好吗?
小智 5
MessagingCenter帮助您使代码保持解耦状态。有时您会发现自己处于需要在某些代码之间创建引用的位置,但是这样做,您必须在可重用性和可维护性上进行折衷。
尝试将其用作最后的手段;通常,还有另一种方法可以实现所需的功能。虽然发送消息的功能非常强大,但过多使用它确实会影响您的可读性。
一个用例示例MessagingCenter是您需要在应用的多个部分中更新值的情况。您可以从多个位置订阅消息,从而在收到消息时在多个位置执行代码。另一个用例是,如果完成了一些后台过程,它可以发送一条消息,然后您可以在UI中通知用户。
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |