2010-11-29 8 views
0

私は、オブジェクトのリストを格納するためにWP7にIsolatedStorageSettingsを使用しています:IsolatedStorageSettingsに更新が必要ですか?

List<T> 

私は私のリスト内のアイテムを検索すると、検索項目のいくつかのプロパティを更新する必要があります。

私はこのコードを使用しています:

List<Article> listArt = null; 
IsolatedStorageSettings.ApplicationSettings.TryGetValue("ArticleListStorage", out listArt); 

var queryList = (from anItem in listArt where (anItem.Id == _id) select anItem).ToList<Article>(); 

a = queryList[0] as Article; 

//mark Article as read 
a.Readed = true; 

私は継続的にアプリ内のさまざまなページを移動すると、私はReadedが正しくevaluedプロパティを参照することができます。

しかし、WP7の[スタート]ボタンをクリックして私のアプリケーション(を閉じるエミュレータなしでなし)を開くと、正しく評価されていないプロパティが表示されます。

リスト内のオブジェクトを更新する必要がありますか?

参考として更新されませんか?

私はそれが動作しない蟻、また、これを試してみました:

listArt[0].Readed = true; 
listArt[0].Favorite = true; 

IsolatedStorageSettings.ApplicationSettings["ArticleListStorage"] = listArt; 

IsolatedStorageSettings.ApplicationSettings.Save(); 

間違っていますか?

ありがとうございました!

答えて

1

はい、リストをもう一度保存する必要があります。隔離されたストレージをファイルシステムと見なしてください。XDocumentをディスクからロードして、メモリを変更してを自動的にに反映させることはできません。まあ、隔離されたストレージと同じです。

2

設定にSave()を明示的に呼び出すか、アプリが正常に閉じるのを待ってから、自動的に保存されます。

一般的に、設定を変更すると、常に明示的に設定を保存することをお勧めします。 (そうしないと良い理由がない限り)

あなたの状況では、あなたのアプリが墓石になるスタートボタンを押しているということが起こっています。アプリケーションの新しいインスタンスを起動すると、通常はアプリケーションの終了時に実行されるコード(自動保存設定を含む)が実行されることなく、トゥーンストーン版が破棄されます。

ここだと保存を使用する例:

var settings = IsolatedStorageSettings.ApplicationSettings; 

if (settings.Contains("some-key")) 
{ 
    settings.Remove("some-key"); 
} 

settings.Add("some-key", "my-new-value"); 
settings.Save(); 
+0

私は.SAVE()を呼び出そうとしましたが、私はpreferrとして、私は動作しません。私が[スタート]ボタンをクリックして、私のアプリを再び開くよりも、プロパティが変わったとは思わない... –

関連する問題