1

要开始使用实时绑定,我目前正在编写一些演示代码。但是在某一时刻,我遇到了一个问题,我找不到任何文档。

我有一个包含多个 TEdit 的表单,并希望将它们与 TBindScope 绑定到对象的属性。我设置了 BindScope 和 BindingList ,当我执行 BindExpression1.Active := true; 时一切正常;

但是现在我更改了对象的属性并希望通知 BindingList 有更新。

这是问题所在。我找不到任何方法来通知 BindingList,因此它会更新值。但是,如果我执行 BindExpression1.Evaluate 它会同步值。

我尝试使用

  • BindingList.Notify(BindScope,'Object.Property')
  • BindingList.Notify(BindScope, '对象')
  • BindingList.Notify(Object, 'Property');
  • BindingList.Notify(BindScope, '属性');
  • BindingList.Notify(BindScope, 'Active');

通知似乎没有任何作用。

PS:我知道在这种情况下不需要 BindScope。但是由于它的演示代码是为了理解,我想知道它是如何与 BindScope 一起工作的。

谢谢。

4

1 回答 1

0

TCustomBindScope.GetValue有关如何解析范围的详细信息,请参阅的源代码。

  1. Component如果分配则使用,否则
  2. DataObject如果分配则使用,否则
  3. Owner用来

因此,最简单的解决方案可能是保留Component(您的 TBindScope 组件的)属性未分配,并使您Object成为所有者表单的属性。

于 2012-07-24T16:43:52.967 回答