gpt4 book ai didi

c# - 如何为数据容器实现 "Do I Need To Save"机制?

转载 作者:行者123 更新时间:2023-11-30 18:03:23 25 4
gpt4 key购买 nike

假设有 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com