如何检查一个变量是否已经被声明?(IsolatedStorage)
本文关键字:声明 IsolatedStorage 是否 一个 何检查 检查 变量 | 更新日期: 2023-09-27 18:17:54
我正在用c#为Windows Phone 7编写一个应用程序。在这个应用程序中我有一些设置(语言和音频)。在第一次启动时,应用程序允许您在MainPage中进行选择。xaml(起始页)设置语言,并将值保存在IsolatedStorage中。在下一次启动时,应用程序在开始菜单上自动运行,并使用用户选择的语言。问题是我无法检查IsolatedStorage中的值,因为它是在mainpage上选择语言时声明的。xaml
我就是这么做的:
在App.xaml中我使用:
RootFrame.Navigating += new NavigatingCancelEventHandler(MainPage.RootFrame_Navigating);
主页。我有过程RootFrame_Navigating
:
public static void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
if (e.Uri.ToString().Contains("/MainPage.xaml") != true)
return;
// Change the current navigation
e.Cancel = true;
App.RootFrame.Dispatcher.BeginInvoke(delegate
{
string confronto = (string)MainPage.Impostazioni.appSettings["lingua"];
if ((confronto == "italiano") || (confronto == "english"))
App.RootFrame.Navigate(new Uri("/MainPage.xaml?method=cancel%20navigation&time=", UriKind.Relative));
else
App.RootFrame.Navigate(new Uri("/StartMenu.xaml?method=cancel%20navigation&time=", UriKind.Relative));
});
}
我是这样保存语言的:
private void engLink_Click(object sender, RoutedEventArgs e)
{
Impostazioni.appSettings.Add("language", "english");
}
private void itaLink_Click(object sender, RoutedEventArgs e)
{
Impostazioni.appSettings.Add("language", "italiano");
}
错误是KeyNotFoundException
,因为我在声明这个变量之前使用它,我想…我该如何解决这个问题?
谢谢!
有一个方法(Contains()
)就是为了这个目的。
If (IsolatedStorageSettings.ApplicationSettings.Contains("language"))
{
...
}
在App.xaml中创建设置链接并保持空白。
Impostazioni.ApplicationSettings.Add("language","");
之后你就可以使用你的代码了
private void engLink_Click(object sender, RoutedEventArgs e)
{
Impostazioni.appSettings.Add("language", "english");
}