我想知道如果我们在事件上编写以下代码:
this.NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));
this.NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.RelativeOrAbsolute));
这将始终导航到 Page1。如果我必须在 Page2 上导航,为什么以及如何覆盖这种行为?
我想知道如果我们在事件上编写以下代码:
this.NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));
this.NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.RelativeOrAbsolute));
这将始终导航到 Page1。如果我必须在 Page2 上导航,为什么以及如何覆盖这种行为?
Navigate() 方法是一种异步方法。可能是您的第二个调用在第一个“导航”仍在进行时执行,因此被取消。尝试在两者之间添加一个小停顿来检查这一点。
编辑:您可以在源页面的NavigatedFrom处理程序、目标页面的NavigatedTo处理程序或App 类的Navigating处理程序中取消对 Navigate() 的第一次调用。调用event.Cancel = true;
取消导航。