保存、加载和操作(列表视图)数据 C#
Saving, loading and manipulating (listview) data C#
我正在开发一个 UWP 应用程序,用户可以在其中输入放置在列表视图中的数据。一切都很好,但我怎样才能将用户数据保存到一个单独的文件中,并在下次用户启动应用程序时加载它?
我试图找到解决方案,但我很难理解这些代码片段以及如何应用它们(因为我对 C# 和应用程序开发还很陌生)。有人愿意解释我如何实现数据的 saving/loading 并解释代码的作用吗?
提前致谢! :)
您可以这样创建一个文件:
StorageFile ageFile = await local.CreateFileAsync("Age.txt", CreationCollisionOption.FailIfExists);
我可以这样读写文件:
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
var ageFile = await local.OpenStreamForReadAsync(@"Age.txt");
// Read the data.
using (StreamReader streamReader = new StreamReader(ageFile))
{
//Use like a normal streamReader
}
if you are trying to write, use OpenStreamForWriteAsync;
如果我理解得很好,您有某种对象结构可以作为您的 ListView 的模型。当应用程序启动时,您想要读取存在数据的文件。当关闭应用程序(或其他一些事件)时,将完成的更改写入文件。对吗?
1) 当您的应用程序加载/关闭(或修改或您选择的某些事件)时,使用 Windows.Storage API 将文本读/写到文件中。
2) 如果你要写入的数据只是一个字符串列表,你可以将其原样保存在文件中。如果比较复杂,我建议将其序列化为 JSON 格式。使用 JSON.NET 序列化 (object -> string) 和反序列化 (object <- string) 文件和对象结构的内容。
Product product = new Product();
product.Name = "Apple";
...
string json = JsonConvert.SerializeObject(product);
我正在开发一个 UWP 应用程序,用户可以在其中输入放置在列表视图中的数据。一切都很好,但我怎样才能将用户数据保存到一个单独的文件中,并在下次用户启动应用程序时加载它?
我试图找到解决方案,但我很难理解这些代码片段以及如何应用它们(因为我对 C# 和应用程序开发还很陌生)。有人愿意解释我如何实现数据的 saving/loading 并解释代码的作用吗?
提前致谢! :)
您可以这样创建一个文件:
StorageFile ageFile = await local.CreateFileAsync("Age.txt", CreationCollisionOption.FailIfExists);
我可以这样读写文件:
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
var ageFile = await local.OpenStreamForReadAsync(@"Age.txt");
// Read the data.
using (StreamReader streamReader = new StreamReader(ageFile))
{
//Use like a normal streamReader
}
if you are trying to write, use OpenStreamForWriteAsync;
如果我理解得很好,您有某种对象结构可以作为您的 ListView 的模型。当应用程序启动时,您想要读取存在数据的文件。当关闭应用程序(或其他一些事件)时,将完成的更改写入文件。对吗?
1) 当您的应用程序加载/关闭(或修改或您选择的某些事件)时,使用 Windows.Storage API 将文本读/写到文件中。
2) 如果你要写入的数据只是一个字符串列表,你可以将其原样保存在文件中。如果比较复杂,我建议将其序列化为 JSON 格式。使用 JSON.NET 序列化 (object -> string) 和反序列化 (object <- string) 文件和对象结构的内容。
Product product = new Product();
product.Name = "Apple";
...
string json = JsonConvert.SerializeObject(product);