我正在创建一个使用一个列表内容的应用程序来打开另一个列表。但是为了让应用程序工作,它需要从IsolatedStorage打开一个包含任何内容的列表,列表存在,但它是空的。
在第一个MainPage.xaml.cs中,我创建一个新列表,将列表保存到IsolatedStorage,然后将列表的名称传递给另一个SecondPage.xaml.cs页面:
String listName; //Declared global in class
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
List<String> emptyList = new List<String>();
settings.Add(listName, emptyList);
settings.Save();
//Here i'm passing it to the second page
NavigationService.Navigate(new Uri("/subjectsPage.xaml?key=" + listName, UriKind.Relative));
这是处理此信息并尝试打开空列表的第二个类
IsolatedStorageSettings settings; //Declared global in class
settings = IsolatedStorageSettings.ApplicationSettings; //Executed in public secondPage() method
帮助方法:
private static object readSetting(string key)
{
return IsolatedStorageSettings.ApplicationSettings.Contains(key) ? IsolatedStorageSettings.ApplicationSettings[key] : null;
}
用于打开列表本身的代码,但在此处失败,并且在“//失败”行的位置调用异常:
List List; //Declared global in class
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (NavigationContext.QueryString.ContainsKey("key"))
{
string listName= NavigationContext.QueryString["key"];
try
{
//Clear listBoxjust in case
listBox.Clear();
List = readSetting(listName) != null ? (List<String>)readSetting(listName) : new List<String>();
}
catch (Exception)
{
//Failed
}
}
}
您对如何解决此问题有任何想法吗?我可以在列表中添加一个空字符串,然后在另一个页面执行onNavigatedTo()时加载列表后将其删除???
答案 0 :(得分:0)
我实际上发现,错误是我试图清除这样的未初始化列表:
//Clear listBoxjust in case
listBox.Clear();