Wpf 导航堆栈溢出
我试图在允许导航到任何页面之前检查用户是否登录,如果没有,它将重定向到登录页面。我在一个框架元素中处理这一切 如果用户未登录,当前代码将创建一个无限循环。我可以调用它并向事件处理程序传递一个告诉它忽略的代码吗Wpf 导航堆栈溢出,wpf,navigation,frame,stack-overflow,Wpf,Navigation,Frame,Stack Overflow,我试图在允许导航到任何页面之前检查用户是否登录,如果没有,它将重定向到登录页面。我在一个框架元素中处理这一切 如果用户未登录,当前代码将创建一个无限循环。我可以调用它并向事件处理程序传递一个告诉它忽略的代码吗 public MainWindow() { InitializeComponent(); FrameWindow.Navigating+=FrameWindow_Navigating; } private v
public MainWindow() {
InitializeComponent();
FrameWindow.Navigating+=FrameWindow_Navigating;
}
private void FrameWindow_Navigating(object sender, NavigatingCancelEventArgs e) {
try {
if (UserLoggedIn()) {
//continue
}
else {
Uri uri = new Uri("Login.xaml", UriKind.Relative);
FrameWindow.NavigationService.Navigate(uri);
}
}
catch (Exception ex){
throw ex;
}
}
通过这样做修复。。。不确定这是否违反任何惯例
private void FrameWindow_Navigating(object sender, NavigatingCancelEventArgs e) {
try {
bool alreadyHeadingToHome = false;
if (e.ExtraData != null){
alreadyHeadingToHome = (bool)e.ExtraData;
}
if (UserLoggedIn() || alreadyHeadingToHome) {
}
else {
Uri uri = new Uri("Login.xaml", UriKind.Relative);
FrameWindow.NavigationService.Navigate(uri, true);
}
}
catch (Exception ex){
throw ex;
}
}