我使用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
答案 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;