【发布时间】:2013-11-28 23:15:45
【问题描述】:
我正在制作一个应用程序,它使用一个列表的内容来打开另一个列表。但是要让应用正常运行,它需要从 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;
}
打开列表本身的代码,但是在这里失败了,并且在“//Failed”行所在的地方调用了异常:
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() 时将其删除???
【问题讨论】:
标签: c# list xaml windows-phone-8 windows-phone