【问题标题】:How to share data with multiple pages in Xamarin. Forms如何在 Xamarin 中与多个页面共享数据。形式
【发布时间】:2018-07-28 13:51:12
【问题描述】:

我正在尝试制作一个非常基本的抽认卡应用程序来练习使用 Xamarin 表单。我对布局的想法是使用导航堆栈,其中主要内容页面有两个按钮。按钮一将您带到一个内容页面,您可以在其中输入/添加术语和定义,按钮二将您带到一个页面,您可以在其中查看您输入的术语和定义。我正在努力的部分是了解如何将存储的信息从一页传递到另一页?

为了与 MVVM 模式保持一致,我正在考虑创建一个数据库对象,只是一个包含字典的类,然后是一个与之链接的视图模型。但是,我不确定这些应该在哪里实例化以便两个页面都可以访问它们,或者我需要使用什么过程被调用? 任何帮助将不胜感激!

【问题讨论】:

  • 页面只是类。传递数据的方式与传递任何类的方式相同——通过构造函数、公共属性、公共方法等。

标签: c# xamarin xamarin.forms


【解决方案1】:

有很多方法可以做到这一点,具体取决于您构建应用程序的方式。

如果页面已经打开,您可以使用 MessagingCenter 从一个 ViewModel 或 Page 发送到另一个

发件人

MessagingCenter.Send<MainPage> (this, "Hi");

接收者

MessagingCenter.Subscribe<MainPage> (this, "Hi", (sender) => {
    // do something whenever the "Hi" message is sent
});

如果你正在创建页面,你可以通过页面构造器传入数据,

新页面构造器

public MyPage(string someText)
{
}

发件人

await Navigation.PushAsync(new NavigationPage(new MyPage(<YourTextHere>)));

或通过属性

await Navigation.PushAsync(new NavigationPage(new MyPage() { SomneProperty = "blach" ));

【讨论】:

  • 从子页面发送到父页面怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
相关资源
最近更新 更多