1

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>);
        }
4

2 回答 2

3

您可以像访问哈希/字典一样访问您的设置。因此,如果您将信息存储在 中,您将在下次使用相同密钥(“bob”)存储某些内容时settings["bob"]覆盖。在您的情况下,您使用的是“userData”键,每次使用时,您都会覆盖设置中该中存储的内容。settings["bob"]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>);
}
于 2012-04-05T14:26:23.610 回答
0

您可能需要存储 Stops 类型字符串的通用列表,然后从 ApplicationSettings 中读取此列表,将新站点添加到列表中,然后将列表存储回 ApplicationSettings。

于 2012-04-05T12:59:46.910 回答