Я создал небольшой проект на платформе Delphi FireMonkey, чтобы опробовать новую функцию живых привязок. Я хочу заполнить TListBox элементами TList<IFoo>
и использую BOCollection пример . BindList.FormatExpressions[0]
имеет значения, аналогичные значениям в примере.
ControlExpression = 'Text'
SourceExpression = 'Current.Name'
Теперь, если я позвоню BindList.FillList
, я получу исключение "Не удалось найти имя". Однако, если я использую список объектов (TList<TFoo>
вместо TList<IFoo>
), то исключение не возникает и список заполняется правильно - это работает! Похоже, что livebinding не может найти свойства интерфейсов.
Определение IFoo следующее:
IFoo = interface
function GetName: string;
procedure SetName(const AValue: string);
property Name: string read GetName write SetName;
end;
Можно ли заставить livebinding работать с интерфейсами?