Пользовательский ListBox с LiveBindings

Я пытаюсь создать собственный ListBox с более подробной информацией и ссылкой на LiveBindings. В списке связывания я вижу только стандартные поля: Текст, Детали, Растровое изображение....

При попытке связать следующий код:

  Item := bliMS.FillExpressions.AddExpression;
  Item.ControlMemberName := 'SubTitle';
  Item.SourceMemberName := 'PAY_NAME';

Возникает исключение:

Проект xxxxxx вызвал класс исключения EEvaluatorError с сообщением «Не удалось найти подзаголовок».

Как я могу добавить имя подзаголовка в свой пользовательский ListBox?


person aldi    schedule 28.02.2014    source источник
comment
Является ли ваш пользовательский ListBox объектом или классом? Я ожидаю, что вам нужно будет создать пользовательский компонент TMyListBox с опубликованным свойством SubTitle и зарегистрироваться.   -  person Frazz    schedule 19.04.2014


Ответы (1)


Ваше утверждение: Item.ControlMemberName := 'SubTitle'; не будет работать, потому что в ListBox/TList<ListViewItem> нет фактического ControlMember/объекта/"поля" (на самом деле правильнее сказать, что его нет в каждом из ListBoxItem объектов в Items TList на самом деле) под названием «SubTitle».

Вместо этого вы должны использовать один из встроенных текстовых объектов (ControlMembers ), которых всего 2:

  1. Item.Text
  2. Item.Detail

Если вам по какой-то причине необходимо иметь ControlMember 'SubTitle', вам потребуется создать собственный объект ListBox или ListBoxItemAppearance и зарегистрировать его.

person Flak DiNenno    schedule 26.09.2014