【问题标题】:Windows Phone 8.1 RT - Saving and loading page stateWindows Phone 8.1 RT - 保存和加载页面状态
【发布时间】:2014-08-21 06:56:06
【问题描述】:

我有 3 个页面:第一个 - MainPage,第二个 - PivotPage,第三个 - SimplePage。我想在导航到 SimplePage 时保存 PivotPage 状态并在返回时加载它。我尝试使用 NavigationHelper 类,但是当我从 PivotPage 返回到 MainPage 然后再次导航到 PivotPage 时,它​​也会保存和加载 PivotPage 状态,这是不可取的。有谁可以帮我解决这个问题?

编辑:

我有4个案例:

  1. 带有中心的页面
  2. 带有枢轴的页面
  3. 带有透视表和列表的页面
  4. 列表页面

如何保存和加载所选项目的位置?

【问题讨论】:

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


    【解决方案1】:

    也许这就是你需要的

    将此添加到您的构造函数中

        this.NavigationCacheMode = NavigationCacheMode.Required;
    

    【讨论】:

    • 这会保存页面状态并在您每次返回时加载它,并且当您再次导航到时加载它,这是可取的。
    • 搭配 Romasz 答案,很有用。
    【解决方案2】:

    可能有很多方法可以做你想做的事,但也许简单的标志就足够了(因此在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
    

    【讨论】:

    • 问题是我想在右数据透视项的列表视图中加载项目的位置。
    • @user3853371 你能更好地描述/编辑你的问题吗?上面的代码应该有助于通过 NavigationHelper 加载存储的数据,您可以根据需要存储位置、pivotitem。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多