我必须在会话之间存储控件的内容。这就是我要做的:
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循环中放置一个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);
}
}
}发布于 2012-12-08 08:04:02
读取文件的方法中存在错误。您只读到了第一行,可能是null。尝试以下操作:
using(StreamReader reader = new StreamReader(stream))
{
string line = reader.ReadLine();
while(line != null)
{
searchFoldersListView.Items.Add(line);
line = reader.ReadLine();
}
}https://stackoverflow.com/questions/13444519
复制相似问题