LiveBindings TObjectBindSourceAdapter

LiveBindings TObjectBindSourceAdapter

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

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

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

  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 中设置断点,它永远不会到达那里。

我错过了什么?

工程可以下载here

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

ABindSourceAdapter.AutoPost := true;

此外,你的 Link 组件 class 是什么?