我如何知道用户是否进行了更改,以便在需要时保存状态?

时间:2011-02-28 21:28:55

标签: c# .net

我的应用程序是一种编辑器,用户可以在画布上拖放对象,并更改对象的N个属性。如何知道用户是否对应用程序进行了更改以提示他是否要保存这些更改?一种方法是创建一个IsDirty属性,但这意味着我必须在许多地方添加一行代码,也许另一种方法可以创建虚拟保存,然后将真实保存的文件与虚拟保存文件进行比较;还有另一种方式吗?

4 个答案:

答案 0 :(得分:1)

单个IsDirty标志在任何更改时设置为true将是正确的方法。这是跟踪这一州的最便宜的方式。

保存会将其设置回false

答案 1 :(得分:1)

我更喜欢将虚拟文件与真实存储文件进行比较的第二个选项,因为它比在任何地方设置IsDirty标志更容易(所有可能的事件处理程序),并且您可能会忘记在稍后更改之后设置它。

答案 2 :(得分:0)

我认为你描述的两种技术都没问题,IsDirty方法在运行时可能非常快,因为你不需要进行序列化和比较,它可能意味着一些变化,但设计并不坏。

答案 3 :(得分:0)

如果用户更改某个属性然后将其更改回原始值,则IsDirty标志将指示他需要保存,而“虚拟保存”方法则表示他不需要保存

您选择哪一个取决于您想要的语义。