我正在编写 FMX Metropolis UI 应用程序并尝试通过 LiveBindings 技术(使用表达式引擎)将两个字符串类型的字段值分配给 TListBox 的 Item.Title 成员。
当我以下列方式使用 TBindList 时:
object BindList1: TBindList
Category = 'Lists'
ControlComponent = ListBox1
SourceComponent = BindSourceDB1
FormatExpressions = <
item
ControlExpression = 'Text'
SourceExpression =
'FieldByName("name1").Text + " " + Field' +
'ByName("name2").Text'
end>
FormatControlExpressions = <>
ClearControlExpressions = <>
end
它将“name1 name2”字符串分配给成员Text
,但我无法设置,ListItemStyle := MetropolisUI
因为 TBindList 类中没有这样的属性
如果我使用TLinkFillControlToField
object LinkFillControlToField2: TLinkFillControlToField
Category = 'Quick Bindings'
Control = ListBox1
Track = True
FillDataSource = BindSourceDB1
FillDisplayFieldName = 'name1'
AutoFill = True
BufferCount = -1
AutoBufferCount = False
FillExpressions = <>
FillHeaderExpressions = <>
FillBreakGroups = <>
end
它让我可以分配ListItemStyle
给MetropolisUI
,但是我只能使用FillDisplayFieldName
属性访问一个字段,并且没有SourceExpression
可以分配'FieldByName("name1").Text + " " + FieldByName("name2").Text'
给它的字段。
我试图猜测fromItem.Text
成员的上下文,但我没能做到。我研究了 Delphi 示例,但没有 Metropolis TListBox,而且它的行为方式似乎与常见的方式不同。有没有人知道如何找到这个问题的解决方案?TListBox
TBindList