1

我正在开发一个需要登录的 windows phone 8 应用程序。

当用户第一次登录时打开应用程序并且他的数据保存在隔离存储中,下次他启动应用程序时,我会检查他在隔离存储中的 id 并尝试导航到主页以跳过登录页面,但它不工作。

这是我在登录页面中的代码:

public MainPage()
{
    IsolatedStorageSettings WasalnySettings = IsolatedStorageSettings.ApplicationSettings;
    if (WasalnySettings.Contains("CurrentUserGUID"))
    {
        string mydata = (string)WasalnySettings["CurrentUserGUID"];
        NavigationService.Navigate(new Uri("/Home.xaml", UriKind.Relative));
    }

    InitializeComponent();
}
4

2 回答 2

1

我认为问题在于主页尚未加载,因为您的调用位于构造函数中,因此尚未加载。尝试处理Loaded事件并将您的Navigate电话放在那里:

public MainPage()
{
    InitializeComponent();

    // Assign the handler:
    MainPage.Loaded += CheckLogin;
}

void CheckLogin(object sender, EventArgs e)
{
    // at this point, the page has been fully loaded:        
    IsolatedStorageSettings WasalnySettings = IsolatedStorageSettings.ApplicationSettings;
    if (WasalnySettings.Contains("CurrentUserGUID"))
    {
        string mydata = (string)WasalnySettings["CurrentUserGUID"];
        NavigationService.Navigate(new Uri("/Home.xaml", UriKind.Relative));
    }
}

在这里找到:NavigationService.Navigate 中的对象引用错误

于 2013-05-13T14:50:02.293 回答
1

实际上,当我在“onNavigatedTo”事件处理程序中编写导航线时它起作用了

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    // at this point, the page has been fully loaded:        
    IsolatedStorageSettings WasalnySettings = IsolatedStorageSettings.ApplicationSettings;
    if (WasalnySettings.Contains("CurrentUserGUID"))
    {
        string mydata = (string)WasalnySettings["CurrentUserGUID"];
        NavigationService.Navigate(new Uri("/Home.xaml", UriKind.Relative));
    }
}
于 2013-05-13T15:43:13.820 回答