Livebinding интерфейсы в Delphi - PullRequest
4 голосов
/ 26 января 2012

Я создал небольшой проект на платформе 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 работать с интерфейсами?

...