Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 10 UWP-在页面之间传递参数的正确方式_Windows 10_Win Universal App - Fatal编程技术网

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应用程序的常用方法。