导航回不同的页面(UWP,模板 10)
Navigating back to different page (UWP, Template 10)
我需要在返回时忽略一个页面,我尝试了以下方法:
public override async Task OnNavigatingFromAsync(NavigatingEventArgs args)
{
if (args.NavigationMode == NavigationMode.Back)
{
args.Cancel = true;
NavigationService.Navigate(typeof(MainPage));
} else {
args.Cancel = false;
}
await Task.CompletedTask;
}
在我导航离开的页面上,但是好像只能取消导航。
解决这个问题的最佳方法是什么?
在您想忽略的页面中,您可以添加以下方法。这将允许从导航历史记录中删除当前页面。
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
// here NavigationService is supposed to be an instance of Template10 INavigationService
var backStack = NavigationService.FrameFacade.BackStack;
if (backStack.Count > 0 && backStack.Last().SourcePageType == this.GetType())
{
backStack.Remove(backStack.Last());
}
base.OnNavigatedFrom(e);
}
我需要在返回时忽略一个页面,我尝试了以下方法:
public override async Task OnNavigatingFromAsync(NavigatingEventArgs args)
{
if (args.NavigationMode == NavigationMode.Back)
{
args.Cancel = true;
NavigationService.Navigate(typeof(MainPage));
} else {
args.Cancel = false;
}
await Task.CompletedTask;
}
在我导航离开的页面上,但是好像只能取消导航。
解决这个问题的最佳方法是什么?
在您想忽略的页面中,您可以添加以下方法。这将允许从导航历史记录中删除当前页面。
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
// here NavigationService is supposed to be an instance of Template10 INavigationService
var backStack = NavigationService.FrameFacade.BackStack;
if (backStack.Count > 0 && backStack.Last().SourcePageType == this.GetType())
{
backStack.Remove(backStack.Last());
}
base.OnNavigatedFrom(e);
}