Я кодирую приложение пользовательского интерфейса FMX Metropolis и пытаюсь присвоить два значения поля типа string члену Item.Title TListBox с помощью технологии LiveBindings (используя механизм выражений).
Когда я использую 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'
.
Я пытался угадать контекст Item.Text
члена TListBox
из TBindList
, но не смог. Я изучил образцы Delphi, но Metropolis TListBox отсутствует, и похоже, что он действует не так, как обычный. У кого-нибудь есть идеи, как найти решение этой проблемы?