我不了解LiveBinding的目的。我想知道哪些是LiveBinding最有价值的案例。 Embarcadero的手册描述了它:" LiveBindings是RAD Studio中VCL和FireMonkey框架支持的数据绑定功能。 LiveBindings是一个基于表达式的框架,这意味着它使用bin dings表达式将对象绑定到其他对象或数据集字段"。
谢谢,但我仍然不知道比以前更多。
我看过一些视频,其中一个人花了12分钟和百分之一的点击次数将TLabel的标题连接到TListBox控件。当用户单击ListBox中的项目时,项目的名称将显示在Label中。我可以通过一行代码完成此操作(几次击键,无鼠标点击)。 我不批评LiveBinding。我说我不明白它有用的地方。我错过了什么。由于没有做一些无法通过代码完成的事情,这意味着它可以通过代码完成某些工作,但在视觉上和速度要快得多。我承认我没有在这个主题上投入大量时间,但在任何地方我都看到了一种非常复杂的方式(来吧,你真的需要5个额外的控件才能让LiveBinding工作吗?)来做一个简单的任务。
似乎LiveBinding主要是为DB设计的。所有示例都将包含某种DB连接。但我只对我可以使用LiveBindings并且没有涉及数据集/数据库的情况表示感兴趣。我没有那么多使用DB。
答案 0 :(得分:4)
我怀疑,如果他们可以使用传统的db-aware VCL组件,那么任何人都会使用实时绑定。但是,这不是非VCL项目(Android,Apple等)的选项,而实时绑定是Emba提供的唯一选项,用于向TDataSet后代提供数据。
实时绑定的一个优点是除了Android和Apple目标之外,您可以在Windows应用程序中使用它们,因此可以想象您可以为这三个应用程序编写相同的(基于FMX的)应用程序。
Libe-binding 也可以在VCL应用程序中使用,但是,我无法想象为什么有人会使用实时绑定,如果他们仅瞄准Windows数据库应用程序,因为它们很多比传统的数据库感知控件慢,特别是像网格这样的多行控件。
我没有尝试过自己,但由于实时绑定的实现是基于接口的,因此它的潜在用途远远超出了数据库应用程序,但您必须自己实现这些接口。它似乎是基于一个相当抽象的表达式评估引擎。
设置l.b. IDE中的项目似乎需要比传统的VCL应用程序更多的点击,但这主要是因为还有一个额外的步骤,你告诉IDE如何将gui对象绑定到数据源)。但是,如果你愿意的话,完全在代码中“连接”活动绑定是非常简单的。