Windows Phone 8.1 RT - 保存和加载页面状态

时间:2014-08-21 06:56:06

标签: c# xaml windows-runtime windows-store-apps windows-phone-8.1

我有3页:第一页 - MainPage,第二页 - PivotPage,第三页 - SimplePage。我想在导航到SimplePage时保存PivotPage状态并在返回时加载它。我尝试使用NavigationHelper类,但是当我从PivotPage返回到MainPage然后再次导航到PivotPage时,它也保存并加载PivotPage状态,这是不可取的。有没有人可以帮我处理这件事?

修改

我有4个案例:

  1. 带有集线器的页面
  2. 带有pivot的页面
  3. 页面带有带列表的支点
  4. 带列表的页面
  5. 如何在那里保存和加载所选项目的位置?

2 个答案:

答案 0 :(得分:4)

也许这就是你需要的

将其添加到构造函数

    this.NavigationCacheMode = NavigationCacheMode.Required;

答案 1 :(得分:1)

可能有很多方法可以做你想要的,但也许简单的标志就足够了(因此加载状态在OnNavigatedTo中被触发):

// provide a flag 
private bool ifLoadData = false;

// set the flag before state is loaded
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    ifLoadData = e.NavigationMode == NavigationMode.Back;
    // rest of the code

// then in LoadState just check if you want your data to be loaded
private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
    if (ifLoadData)
    {
       // load data