使用XE3中的自动更新实时绑定(无需像在XE2中那样调用Notify())

我正在使用Delphi XE2,并且听说了他们在XE3中自动更新的新的Live Binding(不需要像在XE2中那样调用Notify())。

在C#或Delphi XE2中,我们必须在Delphi中实现INotifyPropertyChangedNotify(); ),这种方法确实很有意义,因为我们可以完全控制要更新的内容以及何时更新,以便我们可以微调性能和轻松实现虚拟化。

但是我只是想知道它是如何工作的,他们为了实现它而做了什么样的机制,我不知道他们是如何做到的,以下是可能用于实现自动更新的假设。

  1. 计时器:计时器经常打勾并刷新所有数据

    性能非常低,没有虚拟化

  2. 编译器级别特性:编译器实现的所有notify() events相关代码都是自动神奇的

    大量的头

  3. 索姆其他方法:

请帮我确定他们是如何实施它的。

我目前正在使用XE3试用,所以我没有访问源代码, 你的答案将帮助我决定是否切换到新function
我有一个具有400个属性的类(集合项)绑定(并不是所有的时候都是这样),所以性能在我的应用程序的稳定性中确实扮演着重要的angular色。

LiveBindings通过绑定任何对象与另一个感兴趣的对象基于一些事件。 这是通过观察者模式发生的,当有事件触发时,将通知对象检查员,检查员将通知已经注册的组件显示更改。

希望这可以帮助。 如果你想挖掘一下,有很多这方面的文档。