我有一个应该将登录用户重定向到特定页面的应用程序。
我的问题是我从子窗口收到错误信息::: MainPage mp =(MainPage)Application.Current.RootVisual;在这种情况下如何重定向?
/// <summary>
/// Navigate to page that user is most likely to use.
/// </summary>
private static void NavigateToUserPage()
{
// Get logged in Role
User user = WebContext.Current.User;
// Count if collection > 1
List<string> roles = new List<string>(user.Roles);
if (roles.Count > 1)
{
// goto roles pages to select the user role
}
else
{
switch (roles[0])
{
case "SiteAdmin":
Uri uriSiteAdmin = new Uri("OwnerOccupier", UriKind.Relative);
MainPage mp = (MainPage)Application.Current.RootVisual;
mp.ContentFrame.Navigate(uriSiteAdmin);
break;
case "OwnerOccupier":
Uri uriOwner = new Uri("OwnerOccupier", UriKind.Relative);
MainPage p = (MainPage)Application.Current.RootVisual;
p.ContentFrame.Navigate(uriOwner);
break;
default:
break;
}
}
}
答案 0 :(得分:1)
在LoginBatton_Click事件处理程序的Views \ Login下的LoginStatus用户控件中调用登录窗口。您实际可以做的是在内容框架所在的MainPage构造函数中,您可以订阅WebContext.Current.Authentication.LoggedIn事件,并且在成功验证用户时将调用的事件处理程序中,您可以调用ContentFrame.Navigate ({输入uri here})。
答案 1 :(得分:1)
在代码中的某个时刻,您将使用ChildWindow
Show
方法。在此之前,为Closed
事件添加一个事件处理程序。将导航代码放在此处理程序中,而不是将其包含在登录ChildWindow
中。