1

セッション間でコントロールの内容を保存する必要があります。これが私がすることです:

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

1 に答える 1

0

ファイルから読み取るメソッドにバグがあります。おそらくnull. 次のことを試してください。

    using(StreamReader reader = new StreamReader(stream))
    {
        string line = reader.ReadLine();
        while(line != null)
        {
            searchFoldersListView.Items.Add(line);
            line = reader.ReadLine();
        }
    }
于 2012-12-08T00:04:02.410 に答える