WP7从Tombstone恢复并返回页面

时间:2011-05-23 22:34:09

标签: c# windows-phone-7 mvvm mvvm-light

当从墓碑中恢复时,是否有一种漂亮/优雅的方式可以返回用户所在的页面?我不确定我的应用程序或它的工作方式,但我总是回到主页面上。

我的应用程序设置了一个主页面,其中包含一个Pivot Control,并且有几个Pivot项目将导航到新页面。如果有意义,我的Naigation看起来像这样:

PivotItem1 - >网页A
PivotItem2 - > PageB - > PageC
PivotItem3 - > PageD - > PageE - PageF(按PageF上的后退按钮将使用NonLinear导航服务返回主页面)

因此,如果任何页面上的用户墓碑我想将它们返回到该页面并使BackStack可用,那么导航就不会搞砸了。

我正在使用MVVM Light和NonLinear导航服务,如果这有助于或伤害我正在努力实现的目标。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我有一个类似导航的应用程序,它可以满足您的需求(也使用NonLinear导航服务)。在我的情况下,我将用户的当前页面/枢轴项目存储在隔离存储中,以及指示应用程序是否从逻辑删除返回的令牌(或bool)。当用户导航到页面时,页面加载会在iso中设置当前页面值,如果页面有一个数据透视表,它还会将当前数据透视表设置为第一个。 pivot_changed事件具有将新的当前数据透视更改为刚刚更改为的用户的代码。

当应用程序处于逻辑删除过程中时,会触发app_deactivate事件,并且我在此处将iso中的IsTombstoned值设置为true。

当用户从逻辑删除返回时,主page_load首先检查应用程序是否从逻辑删除重新激活(IsTombstoned = true),如果是,则立即导航到名称存储在iso中的页面。当前当前的page_load触发时,它会检查IsTombstoned是否为true,如果是,则将其设置为false(恢复正常),如果页面上有一个pivot,则将选定的pivot项设置为存储的当前pivot。如果页面没有枢轴控件,则当前轴将保留为空白。如果页面在逻辑删除时存在动态内容,您还需要提供恢复。

抱歉,我没有向您展示代码,但是我远离工作站,我无法接触它。