Как заполнить пользовательский столбец в FMX TGrid с помощью LiveBindings

Я пытаюсь создать TCalendarEdit содержащий столбец внутри компонента сетки следующим образом.

type
  TDatecell = class(TCalendarEdit)
  end;

  TDateColumn = class(TColumn)
  private
    function CreateCellControl: TStyledControl; override;
  public
    constructor Create(AOwner: TComponent); override;
  end;
...
constructor TDateColumn.Create(AOwner: TComponent);
begin
  inherited;
end;

function TDateColumn.CreateCellControl: TStyledControl;
begin
  Result := TDatecell.Create(Self);
end;

Работает нормально. Тогда я стека при заполнении столбца из поля FDQuery типа даты. Я способен установить ссылку Live Binding и заполнить столбцы традиционных типов, а также добавить свой DateColumn в сетку. Я попытался подключить этот столбец к BindSourceDB

LinkGridToDataSourceBindSourceDB1.Columns.Add;
LinkGridToDataSourceBindSourceDB1.Columns.Items
[LinkGridToDataSourceBindSourceDB1.Columns.Count-1].
MemberName:='date_set_by_user';

но это уничтожает все столбцы в сетке и создает новый (я полагаю, TColumnType). Событие OnGetValue сетки, традиционно используемой для присвоения значений ячейкам в объявленных пользователем столбцах, не срабатывает, если есть ссылка LiveBinding. Я думаю, что можно заполнить столбцы вручную, но как я могу заполнить этот столбец с помощью механизма Livebindings?

0 ответов

Другие вопросы по тегам