LiveBinding 的用法

Usage for LiveBinding

我不明白 LiveBinding 的用途。我想知道 LiveBinding 在哪些情况下最有价值。 Embarcadero 的手册对其进行了描述:"LiveBindings is a data-binding feature supported by both the VCL and FireMonkey frameworks in RAD Studio. LiveBindings is an expression-based framework, which means it uses binding expressions to bind objects to other objects or to dataset fields".
谢谢,但我仍然不知道比以前更多。

我看过一些视频,其中有人花费 12 分钟和百分之一的点击次数将 TLabel 的标题连接到 TListBox 控件。当用户单击 ListBox 中的项目时,该项目的名称将显示在标签中。我本可以用一行代码来做到这一点(只需敲几下键盘,无需点击鼠标)。 我不是在批评 LiveBinding。我是说我不明白它在哪里有帮助。我错过了一些东西。由于它没有做代码无法完成的事情,这意味着它正在做可以通过代码完成的事情,但在视觉上要快得多。我承认我没有在这个主题上投入很多时间,但我到处都看到了一个非常复杂的方法(来吧,你真的需要 5 个额外的控件来使 LiveBinding 工作?)来完成一个简单的任务。

此外,LiveBinding 似乎主要是为 DB 设计的。所有示例都将包括某种类型的数据库连接。但我只对可以使用 LiveBindings 并且不涉及数据 set/DB 的情况感兴趣。我没有那么多地使用数据库。

我非常怀疑如果有人可以使用传统的 db-aware VCL 组件,他们会使用实时绑定。但是,这不是非 VCL 项目(Android、Apple 等)的选项,实时绑定是 Emba 提供的唯一用于将数据传递给 TDataSet 后代项目的选项。

实时绑定的一个优点是,除了 Android 和 Apple 目标之外,您还可以在 Windows 应用程序中使用它们,因此可以想象您可以编写相同的(基于 FMX 的)应用程序对于所有三个。

Libe-binding 可以 也可以在 VCL 应用程序中使用,但是老实说,我无法想象为什么有人会使用实时绑定,如果它们只是 以 Windows 数据库应用程序为目标,因为它们 比传统的数据库感知控件慢很多,尤其是多行控件,例如网格。

我自己没有尝试过,但是因为实时绑定的实现是基于接口的,它的潜在用途远远超出了数据库应用程序,但您必须自己实现接口。它似乎是基于一个相当抽象的表达式求值引擎。

设置 l.b。 IDE 中的项目似乎确实需要比您习惯使用传统 VCL 应用程序更多的点击操作,但这主要是因为在您告诉 IDE 时还涉及一个额外的步骤如何将 gui 对象绑定到数据源。但是,如果需要,完全在代码中 "wire up" 实时绑定非常简单。