我正在开发一个系统,用户可以通过 GUI 编辑现有对象(准确地说是“过滤”域对象)。作为 UI 提示,我们只希望在用户确实修改了对象的某些内容时启用保存按钮。我想知道是否有人对这个问题有任何经验,以及解决这个问题的最佳方法是什么。
我正在考虑向域对象添加一个 isDirty() 标志。当用户开始编辑过滤器时,我会制作一个副本,将其传递给 GUI 并让用户对副本进行修改。然后,isDirty() 标志上的绑定(bind)将启用/禁用保存按钮。保存时,差异将被合并到原始对象中并保持不变。
另外,我在想如果用户撤消他对对象所做的更改会发生什么。然后 isDirty() 标志应该返回 false。所以我想实现这一点的唯一方法是将每个属性的原始值保留在域对象中。
有任何想法吗?
最佳答案
正确的!
此外,您可以公开两种方法:
BeginEdit - 在此方法中,您将 IsDirty 标志标记为 True。表示您正在修改。当您要进行修改时调用此方法
CancelEdit - 在此方法中,将 IsDirty 标志重置为 False。这意味着您已中止编辑过程并恢复到原始状态。取消所做的任何修改时调用此方法。
一旦任何修改被保留,您还将 IsDirty 标志重置为 False。
我希望这有帮助。
关于user-interface - 对象编辑和 isDirty() 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/200887/