在页面之间传递状态?

时间:2011-04-10 01:13:31

标签: silverlight windows-phone-7 navigation

我有两个页面的Silverlight Windows Phone 7应用程序。我想在它们之间传递一些非常重要的状态(数组或结构)。我是否必须遵循Web模型,其中所有内容都需要打包到查询字符串中?当所有页面和类在相同的进程和程序集中位于同一设备上时,没有多大意义。

所以问题是:
  - 在页面之间导航时,是否有一种按原样传递数据的好方法?   - 在页面导航时,源页面的代码隐藏是否可以访问目标页面的代码隐藏(反之亦然)?   - 是否有所有页面都可以引用的共享用户对象(如ASP会话)?

或者,有没有办法嵌套XAML?我可以使用一个模型,其中有一个外部容器页面,可以将不同的内容页面加载到其中的面板上。

2 个答案:

答案 0 :(得分:4)

您有几个选择:

  1. 按照建议使用查询字符串。从Web开发的角度来看,这是有道理的,但我们不是从Web开发的角度来看。
  2. 使用静态变量。这可能是最简单的。只需使用静态属性声明另一个类,就可以这种方式共享数据。这种方法唯一关心的是线程安全。
  3. 使用隔离存储。

答案 1 :(得分:2)

不,您不必传递查询字符串中的所有内容。只需传递一个id并将数据非重要数据存储在页面之间的隔离存储中。

有一系列关于如何执行此操作的文章here