如何在加载当前页面之前导航到带有条件的页面

本文关键字:有条件 导航 加载 当前页 | 更新日期: 2023-09-27 18:18:01

在加载页面之前我有一个条件要检查。如果条件成立,我希望在加载当前页面之前导航到该页。我做了一些研究,发现我不能在构造器中使用NavigationService。我怎样才能实现我想做的事?

 if (!App.appSettings.Contains("citySelected"))
 {
     NavigationService.Navigate(new Uri("/Pages/CityList.xaml", UriKind.Relative));         
 }

如何在加载当前页面之前导航到带有条件的页面

虽然NavigationService不能在页面的构造函数中使用,但可以在其Loaded事件处理程序中使用:

public FirstPage()
{
    this.InitializeComponent();
    this.Loaded += (sender, args) =>
    {
        if (whatever == true)
            NavigationService.Navigate(new Uri("/Pages/SecondPage.xaml", UriKind.Relative));
    };
}

或者,同样在页面的OnNavigatedTo方法中起作用:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    if (whatever == true)
        NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
}