- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设有 BindingList<Person{Name, age}>
类和一个PersonManager
托管列表的类。在应用程序中,每个控件都绑定(bind)到人员列表,以便对其进行操作或更新。例如。一个包含人员姓名的列表框,一个更新所选人员年龄的控件等。
我现在想为此实现“我需要保存吗”机制。不知何故,ui 必须知道 PersonManager 是否已更改才能保存它。
我的想法是 catch INotifyPropertyChanged
Person 实现的事件,并在 PersonManager 中创建一个事件,该事件在引发 propertyChangedEvent 时触发。类似于事件转发机制。
这似乎很容易出错。关于如何让它变得更好的任何建议?
最佳答案
如果 BindingList 中的项目实现 INotifyPropertyChanged,则当其中一项 PropertyChanged 事件触发时,BindingList 的 ListChanged 事件将触发。
因此,您只需在您的 PersonManager 中处理 BindingList 的 ListChanged 事件,并在您的 PersonManager 中设置一个脏 bool 标志(脏是陈旧或未保存数据的典型标志)。然后,应用程序可以询问 PersonManager 是否有任何数据是脏的。当应用程序保存数据时,它会告诉 PersonManager 重置脏标志。如果您的 PersonManager 还处理数据的保存,那么它可以重置自己的标志。
希望这对您有所帮助。
关于c# - 如何为数据容器实现 "Do I Need To Save"机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216854/
我是一名优秀的程序员,十分优秀!