2012-04-05 8 views
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); 

     } 

EDIT:

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

答えて

3

ハッシュ/ディクショナリのように設定にアクセスできます。したがって、店舗情報がsettings["bob"]の場合は、キー( "bob")の次のものを保存するときにsettings["bob"]を上書きします。あなたのケースでは、あなたはsettings["userData"] = "something";を使うたびに、キー "userData"を使用しています。設定にはのキーが上書きされます。

あなたは、次の(それはそれのより記述内容だとなるように、私は「お気に入り」にご設定に改名しました)のようなものを使用でき

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>); 
} 
+0

こんにちはありがとうございます。 私は以下のようなメッセージを取得 - KeyNotFoundException それは、この行を打つ '一覧お気に入り=設定[「お気に入り」]リストなどを;' –

+0

は、私が代わりにTryGetValue()メソッドを使用してその行を変更しました。これは、例外を発生させることなく値を取得しようとします。お役に立てれば。 –

+0

ありがとう、私はそれを追加しました。しかし、私は今、 "systems.collections.generic.list'1 [S ....]を取得していますが、それをすべて見ることはできません。一度保存したものの1つだけを保存しておくこともできます。 何が起こっているのかよく分かりません。 –

0

は、おそらくの文字列型の一般的なリストを格納する必要がありますこのリストを停止してから読むApplicationSettingsに新しい停止を追加してから、ListをApplicationSettingsに保存し直してください。

関連する問題