我目前正在使用Delphi XE2,听说XE3中有新的Live Binding功能,可以自动更新(无需像XE2中一样调用Notify())。
在C#或Delphi XE2中,我们必须实现INotifyPropertyChanged
(在Delphi中为Notify()
),这种方法确实很有意义,因为我们可以完全控制要更新的内容以及何时更新它,因此可以轻松地调整性能并实现虚拟化。
但是我想知道它是如何工作的,他们采取了什么样的机制来实现它,我不知道他们是如何做到的,以下是可能用于实现自动更新的假设。
计时器:计时器定期刷新所有数据
非常慢的性能,没有虚拟化
编译器级特性:编译器自动实现与
notify()事件
相关的所有代码很多开销
其他方法:
请帮我确定他们是如何实现它的。
我目前正在使用XE3试用版,因此无法访问源代码,您的答案将帮助我决定是否切换到新功能。
我有一个具有400个属性的类(集合项)需要绑定(并非所有属性始终需要绑定),因此性能对我的应用程序的稳定性起着重要作用。