1

我正在玩 LiveBindings,但我无法让 TObjectBindSourceAdapter 工作。我不会更改对象的属性。我也试过这个例子。同样的问题。

我有一个 FMX 应用程序,表单上只有一个复选框

然后我做了一个简单的类:

  TSettings = class
  private
    FTest: Boolean;
    procedure SetTest(const Value: Boolean);
  public
    property Test: Boolean read FTest write SetTest;
  end;

{ TSettings }

procedure TSettings.SetTest(const Value: Boolean);
begin
  FTest := Value;
end;

然后我使用设计器进行了绑定:

在此处输入图像描述

我创建了适配器:

procedure TFormMain.PrototypeBindSource1CreateAdapter(Sender: TObject; var ABindSourceAdapter: TBindSourceAdapter);
begin
  ABindSourceAdapter := TObjectBindSourceAdapter<TSettings>.Create(Self, TSettings.Create, True);
end;

并在 CheckBox 中添加了一个 OnChangeEvent:

procedure TFormMain.CheckBox1Change(Sender: TObject);
begin
  TLinkObservers.ControlChanged(Sender as TComponent);
end;

但是,如果我在其中设置断点,SetTest它永远不会到达那里。

我错过了什么?

该项目可以在这里下载

4

1 回答 1

2

我知道如果您已经将 PrototypeBindSource AutoPost 属性设置为 True,这很奇怪,但是您必须通过过程 TFormMain.PrototypeBindSource1CreateAdapter 中的代码显式设置(开始编辑)相关的 TBindSourceAdapter(结束编辑),使用

ABindSourceAdapter.AutoPost := true;

此外,您的 Link 组件类是什么?

于 2020-11-16T13:01:02.833 回答