我正在尝试构建类似TLookupComboBox
使用 LiveBindings 的东西。
我TComboBox
在 VCL 表单上放置了一个法线。我还有一个数据集,其中一些行包含两个字段id
和text
.
然后我使用 LiveBindings 编辑器创建一个TBindSourceDB
和一个TBindingsList
.
其中只有一个绑定:
object BindingsList1: TBindingsList
Methods = <>
OutputConverters = <>
UseAppManager = True
Left = 244
Top = 229
object LinkFillControlToField1: TLinkFillControlToField
Category = 'Quick Bindings'
Control = ComboBox1
Track = True
FillDataSource = BindSourceDB1
FillValueFieldName = 'id'
FillDisplayFieldName = 'text'
AutoFill = True
BufferCount = -1
FillExpressions = <>
end
end
如您所见,我对FillValueFieldName
和有不同的字段FillDisplayFieldName
。
LiveBindings 设计器如下所示:
ComboBox 填充了 field 中的值text
,所以我认为我设置正确。
我怎样才能得到SelectedValue
来自代码?
我可以直观地将值绑定到 aTLabel
然后我可以读取TLabel.Caption
,但肯定有更简单的方法吗?
PS:我不想将值存储在数据库中,否则我只会使用TDBLookupComboBox
.
编辑:我尝试使用 a TPrototypeBindSource
,但是没有明显的方法可以从代码中访问字段。我也尝试过将第二个TBindSourceDB
与 which 一起使用TClientDataSet
,但这感觉就像用大锤敲击坚果。