我是Windows应用开发的新手。目前我正在研究使用c#在xamls之间传递和接收参数。
有人可以通过一些示例帮助解释LoadState()
和navigationHelper_LoadState()
之间的区别吗?我应该去哪个接收参数?
答案 0 :(得分:2)
因此,NavigationHelper.LoadState需要两件事:
OnNavigatedTo
当此网页即将在框架中显示时调用。 NavigationMode.New
导航到页面的新实例(不是前进或后退) 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)
网上有很多例子。你可能最好经历这些,然后回到这里寻找更具体的问题。