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[“收藏夹”]作为列表);
}

你好,谢谢。当它点击这一行时,我收到以下消息-KeyNotFoundException
List-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>);
}