使用MVVM模式在Xamarin中将数据从一个View传递到另一个View的最佳方法是什么?
即使对象中的数据很大,传入构造函数也是最佳选择吗?
我们可以使用哪种其他模式传递数据?
答案 0 :(得分:2)
假设您在Xamarin.Forms
,有很多方法可以做到这一点(取决于您的应用程序结构)。
如果页面已经打开,您可以使用 MessagingCenter 从一个ViewModel或Page发送到另一个,同时保持decoupled架构
<强>发件人强>
MessagingCenter.Send<MainPage> (this, "Hi");
<强>接收机强>
MessagingCenter.Subscribe<MainPage> (this, "Hi", (sender) => {
// do something whenever the "Hi" message is sent
});
如果你创建的页面与为你创建它的框架相关,你可以通过Page Constructor传递数据,
新页面构造函数
public MyPage(string someText)
{
}
<强>发件人强>
await Navigation.PushAsync(new NavigationPage(new MyPage(<YourTextHere>)));
或通过财产
await Navigation.PushAsync(new NavigationPage(new MyPage() { SomneProperty = "blach" ));
其他资源