在Xamarin中将数据从一个视图传递到另一个视图的最佳方法是什么?

时间:2018-04-03 13:27:20

标签: c# xamarin

使用MVVM模式在Xamarin中将数据从一个View传递到另一个View的最佳方法是什么?

即使对象中的数据很大,传入构造函数也是最佳选择吗?

我们可以使用哪种其他模式传递数据?

1 个答案:

答案 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" ));

其他资源

MessagingCenter