private void save()
{
// Do not block on this method
BeginInvoke((MethodInvoker)delegate
{
// Don't save a note if both fields are null.
var onlyValidNotes = Notes.Where(_ => !(
string.IsNullOrWhiteSpace(_.Title) &&
string.IsNullOrWhiteSpace(_.Message)));
File.WriteAllText(
_jsonPath,
JsonConvert.SerializeObject(onlyValidNotes, Formatting.Indented));
});
}
1条答案
按热度按时间0pizxfdo1#
DataGridView
将完成大部分的工作,如果你把你的笔记列表附加到它的DataSource
属性中。这个列表将很容易转换成一种可以写入磁盘的格式(Json),DGV将给你提供触发保存的事件(不需要按钮)。所以,首先创建一个类,它具有Note
的公共属性:接下来,让
BindingList
保存一些Note
对象。当加载
MainForm
时,我们将赋值DataSource
,生成列,如果已经有保存的notes.json
文件,我们可以将其加载回这里。每当单元格完成编辑或删除行时,调用save
方法。以下是手动输入第一个Note后的DGV:
保存
Notes
的一种方法是将其写为Json文件。(确保您已经安装了Newtonsoft.Json
NuGet,并且是using System.Linq
和using Newtonsoft.Json
)。我们将数据保存在哪里呢?一个不错的选择是用户的本地AppData文件。我们可以在MainForm CT中设置此路径,或者: