5

我不明白 LiveBinding 的目的。我想知道 LiveBinding 在哪些情况下最有价值。Embarcadero 的手册对其进行了描述:“LiveBindings 是 RAD Studio 中的 VCL 和 FireMonkey 框架都支持的数据绑定功能。LiveBindings 是基于表达式的框架,这意味着它使用绑定表达式将对象绑定到其他对象或数据集字段” .
谢谢,但我仍然不知道比以前更多。

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

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

4

1 回答 1

4

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

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

Libe-binding可以在 VCL 应用程序中使用,但是,我无法想象为什么有人会使用实时绑定,如果他们针对 Windows DB 应用程序,因为它们传统的 db-aware 控件慢得多,尤其是多-行的,例如网格。

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

在 IDE 中设置一个 lb 项目似乎需要更多的点击,而不是你在传统的 VCL 应用程序中习惯的,但这主要是因为涉及到一个额外的步骤,你告诉 IDE 如何绑定gui 对象到数据源。但是,如果您愿意,可以完全在代码中“连接”实时绑定非常简单。

于 2016-10-24T20:32:57.863 回答