TDateEdit 无法使用数据源双向进行实时绑定

问题描述

这是一个简单的问题。 启动多设备应用程序,将 TDateEdit 和 DBTable 放置在一个包含 TdateTime 数据的字段中。然后使用 LiveBinding 设计器将数据源字段链接到 TDateEdit.DateTime 属性。但是这个链接是单向的,控件DateEdit可以接受来自Datasource的数据,但是不能更新对datasource的修改。如何更改bidreiction的链接???

enter image description here

解决方法

可能有些东西不是很清楚。

通常 LiveBindings 链接是双向的 - 因此,如果您设置两个 TDateEdit 并将它们绑定在一起,更改一个应该会更改另一个,无论您更改哪个。

您似乎希望更改 TField 会更新数据库表中的数据。

Delphi 中的数据访问组件通常不是这样工作的。

TFieldTDataSet 的一部分。 TDataSet 有一个 Post 方法可以将更改写入底层数据存储(如果支持)。

数据访问组件非常强大,可以应对许多不同的场景,并允许您通过暴露的事件扩展功能以及对组件进行子类化。

如果你想更新你的底层数据存储,你需要有一个可写的 TDataSet 并且你需要调用它的 Post 来写。

我建议您从 Enbarcadero 的 YouTube 频道中关于如何使用数据 acecss 组件的一些视频开始。这并不难,但超出了这里的答案范围。

,

如果您使用 LiveBindings 向导 将 DateEdit 与字段挂钩,它将双向挂钩到 DateEdit 的“虚拟”SelectedDateTime 属性。该属性实际上并不存在于 TDateEdit 中,但 LiveBindings 使用它来映射 DateEdit 的单独日期和时间属性。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...