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 是什么?
我正在玩 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 是什么?