LoadState和navigationHelper_LoadState之间的区别

时间:2014-06-02 11:50:11

标签: c# windows-store-apps winrt-xaml

我是Windows应用开发的新手。目前我正在研究使用c#在xamls之间传递和接收参数。

有人可以通过一些示例帮助解释LoadState()navigationHelper_LoadState()之间的区别吗?我应该去哪个接收参数?

2 个答案:

答案 0 :(得分:2)

因此,NavigationHelper.LoadState需要两件事:

  1. OnNavigatedTo 当此网页即将在框架中显示时调用。
  2. NavigationMode.New 导航到页面的新实例(不是前进或后退)
  3. MSDN说:

      

    除了提供前面描述的实现之外,还需要从每个页面上实现的OnNavigatedTo()和OnNavigatedFrom()事件处理程序调用NavigationHelper。发生这些事件时,NavigationHelper会调用LoadState()和SaveState()的特定于页面的实现。您可以在每个页面上自定义这些功能的实现。它们应分别代替OnNavigatedTo()和OnNavigatedFrom()。

    原始代码是:

    public void OnNavigatedTo(NavigationEventArgs e)
    {
        var frameState = SuspensionManager.SessionStateForFrame(this.Frame);
        this._pageKey = "Page-" + this.Frame.BackStackDepth;
        if (e.NavigationMode == NavigationMode.New)
        {
            var nextPageKey = this._pageKey;
            int nextPageIndex = this.Frame.BackStackDepth;
            while (frameState.Remove(nextPageKey))
            {
                nextPageIndex++;
                nextPageKey = "Page-" + nextPageIndex;
            }
            if (this.LoadState != null)
            {
                this.LoadState(this, new LoadStateEventArgs(e.Parameter, null));
            }
        }
        else
        {
            if (this.LoadState != null)
            {
                this.LoadState(this, new LoadStateEventArgs(e.Parameter, (Dictionary<String, Object>)frameState[this._pageKey]));
            }
        }
    }
    

    为了您的问题,除非您定义自己的this blog,否则没有LoadState()覆盖。他只是这样做:

    private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
    {
        LoadState(e);
    }
    
    private void navigationHelper_SaveState(object sender, SaveStateEventArgs e)
    {
        SaveState(e);
    }
    
    protected virtual void LoadState(LoadStateEventArgs e) { }
    protected virtual void SaveState(SaveStateEventArgs e) { }
    

    看,它们完全相同。它们之间没有什么不同,除了可能影响时间的执行管道,但不太可能。最后,没有真正的区别。需要使用一个而不是另一个的人......他们必须弄错,归因于其他因素影响的原因。

    祝你好运。

答案 1 :(得分:0)

网上有很多例子。你可能最好经历这些,然后回到这里寻找更具体的问题。

http://marcominerva.wordpress.com/2013/10/10/a-base-page-class-for-windows-8-1-store-apps-with-c-and-xaml/