如何在 PrototypeBindSource.OnCreateAdapter 之外创建绑定对象?
How create binded object outside of PrototypeBindSource.OnCreateAdapter?
我正在使用 TPrototypeBindSource 将某些对象 属性 绑定到视觉控件。一切正常,但我必须像这样在 TPrototypeBindSource.OnCreateAdapter 中创建此对象:
procedure TForm.PrototypeBindSourceCreateAdapter(Sender: TObject;
var ABindSourceAdapter: TBindSourceAdapter);
begin
_viewModel := TViewModel.Create;
ABindSourceAdapter := TObjectBindSourceAdapter<TViewModel>.Create(self,
_viewModel);
end;
我想将创建 _viewModel 移动到表单的构造函数,但它随后停止工作。可能是因为 OnCreateAdapter 在 FormCreate 之前调用。有什么方法可以在 OnCreateAdapter 事件之外创建 _viewModel?
已编辑:
Delphi 东京 10.2
我刚刚找到了很好的教程,解决了这个问题。
https://delphiaball.co.uk/2015/10/19/livebindings-in-vcl-part-2-livebinding-objects/
在调用继承的 Create 之前,您必须覆盖表单构造函数并创建 _viewModel。
constructor TForm.Create;
begin
_viewModel := TViewModel;
inherited Create(Application);
end;
我正在使用 TPrototypeBindSource 将某些对象 属性 绑定到视觉控件。一切正常,但我必须像这样在 TPrototypeBindSource.OnCreateAdapter 中创建此对象:
procedure TForm.PrototypeBindSourceCreateAdapter(Sender: TObject;
var ABindSourceAdapter: TBindSourceAdapter);
begin
_viewModel := TViewModel.Create;
ABindSourceAdapter := TObjectBindSourceAdapter<TViewModel>.Create(self,
_viewModel);
end;
我想将创建 _viewModel 移动到表单的构造函数,但它随后停止工作。可能是因为 OnCreateAdapter 在 FormCreate 之前调用。有什么方法可以在 OnCreateAdapter 事件之外创建 _viewModel?
已编辑: Delphi 东京 10.2
我刚刚找到了很好的教程,解决了这个问题。 https://delphiaball.co.uk/2015/10/19/livebindings-in-vcl-part-2-livebinding-objects/ 在调用继承的 Create 之前,您必须覆盖表单构造函数并创建 _viewModel。
constructor TForm.Create;
begin
_viewModel := TViewModel;
inherited Create(Application);
end;