如何在PrototypeBindSource.OnCreateAdapter之外创建绑定对象?

时间:2018-03-28 23:58:01

标签: delphi mvvm livebindings

我使用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吗?

编辑: 德尔福东京10.2

1 个答案:

答案 0 :(得分:1)

我刚刚找到了解决此问题的精彩教程。 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;