1

enter code here分離ストレージが機能していますが、1つのアイテムしか保存されていません。

ユーザーがリストで使用できるように、お気に入りのリストを保存できるようにしたい。

現時点では、大量のストップを保存できますが、アプリケーションを再度開くと、最後のアイテムのみが記憶されます。残りを削除します。

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

おそらく、ストップの文字列型の一般的なリストを保存してから、このリストを ApplicationSettings から読み取り、新しいストップをリストに追加してから、リストを ApplicationSettings に保存する必要があります。

于 2012-04-05T12:59:46.910 に答える