Windows phone 7 用于存储最近列表的独立存储,windows phone
Windows phone 7 用于存储最近列表的独立存储,windows phone,windows-phone-7,isolatedstorage,Windows Phone 7,Isolatedstorage,在这里输入code我的独立存储正在工作,但它只存储一个项目 我希望能够存储一个收藏列表,供用户在列表中使用 目前,我可以存储大量的停止,但当我再次打开应用程序时,它只会重新调用最后一项。并删除其余的 private void ApplicationBarFavouriteButton_Click(object sender, EventArgs e) { IsolatedStorageSettings settings = IsolatedStorageSetting
在这里输入code
我的独立存储正在工作,但它只存储一个项目
我希望能够存储一个收藏列表,供用户在列表中使用
目前,我可以存储大量的停止,但当我再次打开应用程序时,它只会重新调用最后一项。并删除其余的
private void ApplicationBarFavouriteButton_Click(object sender, EventArgs e)
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
// txtInput is a TextBox defined in XAML.
if (!settings.Contains("userData"))
{
settings.Add("userData", busStopName.Text);
}
else
{
settings["userData"] = busStopName.Text;
}
settings.Save();
MessageBox.Show("Bus Stop was added to your favourites");
}
然后用于显示列表
if (IsolatedStorageSettings.ApplicationSettings.Contains("userData"))
{
listFav.Items.Add(IsolatedStorageSettings.ApplicationSettings["userData"] as string);
}
编辑:
private void applicationBarFavoriteButton\u单击(对象发送方,事件参数e)
{
IsolatedStorageSettings设置=IsolatedStorageSettings.ApplicationSettings;
列出收藏夹=设置[“收藏夹”]作为列表;
if(收藏夹==null)
{
收藏夹=新列表();
设置。添加(“收藏夹”,收藏夹);
}
收藏夹。添加(bustopName.Text);
设置[“收藏夹”]=收藏夹;
}
显示数据
if (IsolatedStorageSettings.ApplicationSettings.Contains("favourites"))
{
listFav.Items.Add(IsolatedStorageSettings.ApplicationSettings["favourites"] as List<string>);
}
if(隔离存储设置.ApplicationSettings.Contains(“收藏夹”))
{
listFav.Items.Add(隔离存储设置.ApplicationSettings[“收藏夹”]作为列表);
}
您可能需要存储一个类型为string of Stops的通用列表,然后从应用程序设置中读取该列表,向列表中添加一个新的stop,然后将该列表存储回应用程序设置。您可以像访问哈希/字典一样访问设置。因此,如果您在设置[“bob”]
中存储信息,则下次使用相同的键存储内容时,您将覆盖设置[“bob”]
。在您的例子中,每次使用settings[“userData”]=“something”时,您都在使用键“userData”代码>,您正在覆盖设置中该键中存储的内容
您可以使用如下内容(我已将您的设置重命名为“Favorites”,以便更能描述其内容):
列出收藏夹;
设置.TryGetValue(“收藏夹”,输出收藏夹);
if(收藏夹==null)
{
收藏夹=新列表();
设置。添加(“收藏夹”,收藏夹);
}
收藏夹。添加(bustopName.Text);
设置[“收藏夹”]=收藏夹;
以及显示:
if (IsolatedStorageSettings.ApplicationSettings.Contains("userData"))
{
listFav.Items.AddRange(IsolatedStorageSettings.ApplicationSettings["favourites"] as List<string>);
}
if(IsolatedStorageSettings.ApplicationSettings.Contains(“用户数据”))
{
listFav.Items.AddRange(隔离存储设置.ApplicationSettings[“收藏夹”]作为列表);
}
你好,谢谢。当它点击这一行时,我收到以下消息-KeyNotFoundExceptionList-favorites=settings[“favorites”]as-List代码>我已将该行更改为使用TryGetValue()方法。这将尝试在不引起异常的情况下获取值。希望这有帮助。谢谢,我已经补充了。但我现在看到的是“systems.collections.generic.list`1[S…”无法全部看到。而且它只保存了一次保存的其中一个。不确定发生了什么。
List<string> favourites;
settings.TryGetValue("favourites", out favourites);
if (favourites == null)
{
favourites = new List<string>();
settings.Add("favourites", favourites);
}
favourites.Add(busStopName.Text);
settings["favourites"] = favourites;
if (IsolatedStorageSettings.ApplicationSettings.Contains("userData"))
{
listFav.Items.AddRange(IsolatedStorageSettings.ApplicationSettings["favourites"] as List<string>);
}