Windows 10 UWP-在页面之间传递参数的正确方式
假设我想通过几页传递一个对象(引用)。我可以通过Windows 10 UWP-在页面之间传递参数的正确方式,windows-10,win-universal-app,Windows 10,Win Universal App,假设我想通过几页传递一个对象(引用)。我可以通过框架导航和传递参数。导航(typeof(FirstPage),object)。但是如何正确地将引用传递回背压 protected override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter is SomeClass) { this.someObject = (SomeClass)e.Parameter; } else { this
框架导航和传递参数。导航(typeof(FirstPage),object)
。但是如何正确地将引用传递回背压
protected override void OnNavigatedTo(NavigationEventArgs e) {
if (e.Parameter is SomeClass) {
this.someObject = (SomeClass)e.Parameter;
}
else {
this.someObject = new SomeClass();
}
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
SystemNavigationManager.GetForCurrentView().BackRequested += OnHardwareButtonsBackPressed;
base.OnNavigatedTo(e);
}
private void OnHardwareButtonsBackPressed(object sender, BackRequestedEventArgs e) {
// This is the missing line!
Frame.Navigate(typeof(FirstPage), this.someObject);
}
但当我按下后退按钮时,它会返回到无参数导航到的第一页上,然后返回到第二页上硬件按钮后退,然后返回到带填充参数的第一页上导航到
你能给我一些更好的建议吗 在后台处理程序中,不要再向前导航,只需调用GoBack
——如果在全局级别而不是页面级别处理,通常会更容易
您可以在全局/静态对象中存储应用程序状态(希望跨页面导航持久化的内容),也可以直接修改从初始导航传递的对象(如果调用页面仍有引用,它将能够看到更改)
我会考虑搜索“MVVM Windows应用程序”,并查看一些结果来了解构建XAML应用程序的常用方法。
在您的后台处理程序中,不要再次向前导航,只需调用<代码> GoBack < /代码>,如果您在全局级别而不是在页面级别上处理它,则通常更容易。p>
您可以在全局/静态对象中存储应用程序状态(希望跨页面导航持久化的内容),也可以直接修改从初始导航传递的对象(如果调用页面仍有引用,它将能够看到更改)
我会考虑搜索“MVVM Windows应用程序”,并查看一些结果来了解构建XAML应用程序的常用方法。