64

我目前正在使用 Delphi XE2,并听说了他们在 XE3 中使用自动更新的新实时绑定(无需像在 XE2 中那样调用 Notify())。

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

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

  1. Timer : 一个计时器频繁滴答并刷新所有数据

    性能非常慢,没有虚拟化

  2. 编译器级别功能:notify() events编译器自动执行的所有相关代码

    很多过头

  3. 其他一些方法:

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

我目前正在使用 XE3 试用版,因此无法访问源代码,您的回答将帮助我决定是否切换到新功能
我有一个类(集合项),它有 400 个要绑定的属性(并非一直都是),所以性能确实对我的应用程序的稳定性起着重要作用。

4

1 回答 1

2

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

希望这可以帮助。如果您想四处挖掘,有很多文档。

于 2013-06-05T20:39:28.067 回答