应用文件(真实世界的例子)

时间:2010-05-07 12:14:56

标签: c# wpf

寻找创建应用程序文件的指南。例如,我有一个应用程序将用户输入存储到文件(Textbox,DataGrid,ListBox等)。我正在寻找WPF-C#实现。

我想要以下内容:

  1. 如果用户编辑任何表格(文本框等),则会在窗口标题上显示星号
  2. 当窗口关闭且星号仍然存在时,会出现提示“是否要保存更改”。如果然后保存星号消失。
  3. 真正的应用程序使用什么来创建应用程序文件? (注意:我不是在寻找数据库保存或SQL)

    我只是在寻找提示和指导方针。谢谢。

4 个答案:

答案 0 :(得分:1)

过去我接触过的一种方法就是拥有一个设置/应用程序对象。

使用表单级别变量来确定某些内容是否已更改。

如果是,则提示用户。

如果他们单击是,则序列化您的设置/应用程序对象。如果您希望它是人类可读/可编辑的,那么使用Xml序列化程序,如果您不关心它,请使用二进制序列化程序。

答案 1 :(得分:0)

实现目标有很多选择,最常见的解决方案包括序列化类并将它们存储到磁盘或将类包含的数据导出到CSV等常规文本文档中。

如果您希望文件包含CSV类型等可用文件,我建议您查看FileHelpers。使用数据库时要记住的另一件事与将文件存储到磁盘相同。这就是数据库的工作方式(除非它在内存数据库中),它只是一种不同类型的文件。

答案 2 :(得分:0)

使用IsDirty模式,这是您在TextChanged事件上翻转为true的每个字段都有布尔属性的位置。这可用于确定何时显示星号。单击“保存”后,清除每个字段的IsDirty属性。

将表单绑定到表示要保存的数据的类对象,并在保存时将该对象序列化为文件。

答案 3 :(得分:0)

标记一个标志以通知已对文本框进行了更改。更好的是,自定义文本框并将标记作为属性,在文本框的文本更改时在内部设置。

你可以通过几种方式做到。其中一些是 -

  1. Application.Idle事件处理程序 - 检查标志。如果为dirty / true,则将*附加到表单标题的标题。您可能希望使用某些模式在所有受监视的文本框上执行此操作。
  2. 设计一个类来专门执行此任务并跟踪它。
  3. 还有其他方法。我记得他们时会编辑答案。