c# - 文本文件的安全列表并使用 json 读取
问题描述
我试图在 Visual Studio 的列表视图中显示一个列表,该列表首先被序列化,然后被反序列化。一切正常,但我的问题是列表以一种非常奇怪的格式显示,您可以在下图中看到它。
到目前为止,这是我的代码:
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
KalenderClass k1 = new KalenderClass();
k1.termin = TerminTextbox.Text;
k1.datum = DatePicker1.Date;
k1.person = PersonTextbox.Text;
kList.Add(k1);
SaveData(kList);
}
private async void SaveData(List<KalenderClass> kList)
{
StorageFolder ordner = ApplicationData.Current.LocalFolder;
StorageFile datei = await ordner.CreateFileAsync("Kalender.txt", CreationCollisionOption.OpenIfExists);
await FileIO.WriteTextAsync(datei, JsonConvert.SerializeObject(kList));
showDialog("Daten wurden in Datei geschrieben");
}
private async void ReadButton_Click(object sender, RoutedEventArgs e)
{
StorageFolder ordner = Windows.Storage.ApplicationData.Current.LocalFolder;
string path = ordner.Path;
StorageFile datei = await ordner.GetFileAsync("Kalender.txt");
string inhalt = await FileIO.ReadTextAsync(datei);
var k = JsonConvert.DeserializeObject(inhalt);
TerminListview.Items.Add(k);
}
我不想将整个 List k 添加到列表视图中,而只是添加新对象。这是它的显示方式:
我希望它是一种格式,例如:Termin 1: Date: Person:
我希望你们能帮助我
解决方案
更改 CreationCollisionOption 从:
CreationCollisionOption.OpenIfExists
至:
CreationCollisionOption.ReplaceExisting
或者您可以刷新 SaveButton_Click 方法中的列表,如下所示:
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
kList = new List<KalenderClass>(); // <== This line will reset the list
KalenderClass k1 = new KalenderClass();
k1.termin = TerminTextbox.Text;
k1.datum = DatePicker1.Date;
k1.person = PersonTextbox.Text;
kList.Add(k1);
SaveData(kList);
}
推荐阅读
- plsql - 通过将 Excel 文件作为输入对表格执行 DML
- ios - Swift 中的 Bagplot 实现
- angular - 角度分量上的 2 个形式
- php - 如何通过查询获取我的数据,以便创建具有与 OOP 相关的类的编辑函数?
- c# - 切换选项卡时如何防止嵌套 UserControl 中的工具栏被聚焦?
- javascript - 识别 JS 代码中的函数调用
- c# - 即使进程以 RedirectStandardInput = true 启动,监听 Console.CancelKeyPress 的子进程也会收到它
- javascript - Nightwatch JS:Browser.execute 不执行 javascript
- node.js - (Node.js) 需要将大数拆分成不大于 100 的小数
- javascript - 使用 hljs 库在 React 中动态突出显示代码