c# – 将数据从页面传递到Windows Phone 8.1的页面

我有完全相同的问题 Passing data from page to page,但仅适用于Windows Phone 8.1(与Windows Phone 7相反).这是一个问题:

我正在寻找如何从一页到另一页传递数据的最佳做法.

在第一页我有一个按钮,从第B页开始.
页面B上我有6个文本框,允许用户输入信息.当用户完成后,单击按钮将其返回到页面A.

我想将该数据传回给第A页.

我已经看到建议:

构建XML文档并保存到隔离存储
使用App类将信息存储在属性
查询字符串一样传递
我正在寻找最佳实践.有没有一个微软推荐或普遍接受的最好的方法

谢谢

解决方法

在WP8.1运行时 – 对于Silverlight,the methods used in WP8.0仍然可以工作 – 你有几个选择:

>第一个也许最简单的方法是使用Navigate with parameter – 如果它是一个可序列化类型,则不必将其转换为字符串:

// let's assume that you have a simple class:
public class PassedData
{
   public string Name { get; set; }
   public int Value { get; set; }
}

// then you navigate like this:
Frame.Navigate(typeof(Page1),new PassedData { Name = "my name",Value = 10 });

// and in target Page you retrive the information:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    PassedData data = e.Parameter as PassedData;
}

>您可以使用一些静态对象沿着App传递您的数据
>最后,如你所提到的,您可以将数据保存在:LocalSettings,LocalStorage,LocalCache – 在这种情况下,您也必须将其序列化到XAML,Json或其他.

请注意,您还必须处理应用程序暂停/恢复 – 因此在应用程序暂停时保存数据并在恢复时加载.你应该记住,当应用程序恢复时,OnNavigatedTo不被调用.

以上是关于正常的导航(向前).如果要填写上一页中的某些数据,那么您有几个选项:

一个处理程序传递给上一个页面,这样可以从当前页面访问公共变量/属性,
>使用静态变量/属性 – 可能是单例
>再次使用文件/设置

请注意,前两种方法的缺点是应用程序可能会在挂起后崩溃.保存到文件可能在这里更好,认为需要更多的工作和正确的处理.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...