セッション間でコントロールの内容を保存する必要があります。これが私がすることです:
private void Window_Closing(object sender, CancelEventArgs e)
{
IsolatedStorageFile f = IsolatedStorageFile.GetUserStoreForAssembly();
using(IsolatedStorageFileStream stream = new IsolatedStorageFileStream("somefilename", FileMode.Create, f))
using(StreamWriter writer = new StreamWriter(stream))
{
foreach(string path in searchFoldersListView.Items)
{
writer.WriteLine(path);
}
}
}
Closing
これはウィンドウのイベントに付属しています。デバッグ中、コントロールはすべての項目を通過しますが、プログラムを再度実行すると、コントロールは空です。ファイルに移動すると、空であることがわかりました。foreach ループに a を挿入して通常のファイルに保存するようにコードを変更するとFile.AppendAllText()
、そのファイルは問題なく保存されます。何故ですか?
編集:イベントハンドラーの読み取り:
private void Window_Initialized(object sender, EventArgs e)
{
IsolatedStorageFile f = IsolatedStorageFile.GetUserStoreForAssembly();
using(IsolatedStorageFileStream stream = new IsolatedStorageFileStream("somefilename", FileMode.OpenOrCreate, f))
using(StreamReader reader = new StreamReader(stream))
{
string line = reader.ReadLine();
while(line != null)
{
searchFoldersListView.Items.Add(line);
}
}
}