enter code here
我有隔离存储工作,但它只存储一个项目。
我希望能够存储用户在列表中使用的收藏列表。
目前,我可以存储大量停靠点,但是当我再次打开应用程序时,它只会重新记录最后一项。并删除其余的。
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 ApplicationBarFavouriteButton_Click(object sender, EventArgs e)
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
List<string> favourites = settings["favourites"] as List<string>;
if (favourites == null)
{
favourites = new List<string>();
settings.Add("favourites", favourites);
}
favourites.Add(busStopName.Text);
settings["favourites"] = favourites;
}
显示数据
if (IsolatedStorageSettings.ApplicationSettings.Contains("favourites"))
{
listFav.Items.Add(IsolatedStorageSettings.ApplicationSettings["favourites"] as List<string>);
}
答案 0 :(得分:3)
您可以像哈希/字典一样访问您的设置。因此,如果您的商店信息位于settings["bob"]
,则当您下次存储具有相同键(“bob”)的内容时,您将覆盖settings["bob"]
。在您的情况下,您使用的是“userData”键,每次使用settings["userData"] = "something";
时,您都会覆盖设置中键中存储的内容。
您可以使用以下内容(我已将您的设置重命名为“收藏夹”,以便更具描述性内容):
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>);
}
答案 1 :(得分:0)
您可能需要存储Stops类型字符串的通用List,然后从ApplicationSettings中读取此List,向List添加一个新的stop,然后将List存储回ApplicationSettings。