Windows Phone 8 -导航错误
本文关键字:导航 错误 Phone Windows | 更新日期: 2023-09-27 18:05:21
我在IsolatedStorage
中有一个文件。如果文件存在,我想重定向到登录页面或创建帐户页面。
如果该文件不存在,应用程序将进入创建页面,创建并保存密码,并将应用程序重定向到登录页面。但是,如果IsolatedStorage中的文件存在,它将不引导。
private void fileExists()
{
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
if (store.FileExists("passwordFile"))
{
//NavigationService.Navigate(new Uri("/Login.xaml", UriKind.Relative));
MessageBox.Show("Should be redirecting here");
}
else
{
MessageBox.Show("Welcome. Please create an account. Ensure that you remember your password!");
}
}
实际的消息显示,所以它被调用,如果文件不存在,else被执行,所以我的逻辑是合理的。
这里调用FileExists()
函数
public MainPage()
{
InitializeComponent();
fileExists();
}
另一个重定向发生在这里
if ((password1.Password == password2.Password) & (password1.Password.Trim().Length > 0 || password2.Password.Trim().Length > 0))
{
byte[] PasswordByte = Encoding.UTF8.GetBytes(password1.Password);
byte[] ProtectedPassword = ProtectedData.Protect(PasswordByte, null);
this.WritePasswordToFile(ProtectedPassword);
NavigationService.Navigate(new Uri("/Login.xaml", UriKind.Relative));
}
错误是System.NullReferenceException
,但没有在用户代码中处理。
是否尝试在主页加载时调用文件存在检查?这可能是存储准备问题,即使它正在执行。其次,如果你能提到发生异常的确切位置。也请查看这个链接,它可能会对你有所帮助。
问题是NavigationService
仍然是空的,您可以通过在重定向行上放置一个断点来验证,在MainPage.Loaded
事件中放入相同的代码,然后它将工作,(我希望它能工作)
如我所料,这只是一个重定向页面,您可以在初始化中检查文件并保存uri以在类中重定向,并在页面加载时重定向
我需要将fileExists()从构造函数移到一个新函数中。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
fileExists();
}