我正在尝试在wp上保存列表框的状态。我使用这种方法对文本框的内容进行逻辑删除,它工作得很好,但我在字符串列表方面遇到了问题:
基本上我有一个名为beta的字符串列表,我必须单击一个按钮才能生成列表。所以我希望如果我关闭或停用我的应用程序,然后重新启动它,列表就会在不按按钮的情况下显示
List<string> beta;
private void b_Click_1(object sender, RoutedEventArgs e)
{
List<string> beta = new List<string>{
"string","string","string",
"string","string","string",
"string", };
list.ItemsSource = beta;
phoneAppService.State["_List"] = beta;
}
private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
{
object myValue;
if(phoneAppService.State.TryGetValue("_List", out List<myValue)> ){
list.ItemsSource = myValue;
}
}
但是在以下位置出现问题:
phoneAppService.State.TryGetValue("MyValue", out List<myValue)>
尽管此方法适用于一个字符串,但它不适用于列表。
对于字符串列表,应该使用哪种方法?
编辑:
以下是我在 app.xaml.cs 类中的方法,我在应用程序关闭、停用、启动或打开时调用这些方法:
private void SaveState() {
PhoneApplicationService phoneAppService = PhoneApplicationService.Current;
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
settings["MyValue"] = phoneAppService.State["MyValue"];
if(settings.Contains("_List")){
settings["_List"] = phoneAppService.State["_List"];
}
}
private void LoadState() {
PhoneApplicationService phoneAppService = PhoneApplicationService.Current;
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
string myValue = "";
if(settings.TryGetValue<string>("MyValue", out myValue )){
phoneAppService.State["MyValue"] = myValue;
}
List<string> myValues;
if (settings.TryGetValue<List<string>>("_List", out myValues))
{
phoneAppService.State["_List"] = myValues as List<string>;
}
}
正如我之前所说,此方法适用于在文本框中正确还原的字符串,但不适用于字符串列表
当您将其添加到 State 时,beta
似乎已经是一个List<string>
。当你把它拉出来时,它应该已经是一个List<string>
,所以你不需要在 TryGetValue 调用中把它变成一个List<myvalue>
。它应该看起来更直接,例如:
private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
{
object myValue;
if(phoneAppService.State.TryGetValue("_List", out myValue))
{
list.ItemsSource = myValue as List<string>;
}
}