1

ライブ バインディングを開始するために、現在いくつかのデモ コードを作成しています。しかし、ある時点で、ドキュメントが見つからないという問題があります。

複数の TEdit を持つフォームがあり、それらを TBindScope でオブジェクトのプロパティにバインドしたいと考えています。BindScope と BindingList をセットアップすると、BindExpression1.Active := true; を実行した瞬間にすべてが機能します。

しかし今、私はオブジェクトのプロパティを変更し、更新について BindingList に通知したいと考えています。

これが問題です。BindingList に通知する方法が見つからないため、値を更新します。しかし、BindExpression1.Evaluate を実行すると、値が同期されます。

使ってみた

  • BindingList.Notify(BindScope, 'Object.Property')
  • BindingList.Notify(BindScope, 'オブジェクト')
  • BindingList.Notify(オブジェクト、「プロパティ」);
  • BindingList.Notify(BindScope, 'プロパティ');
  • BindingList.Notify(BindScope, 'アクティブ');

通知には何も機能していないようです。

PS : この場合、BindScope は必ずしも必要ではないことはわかっています。しかし、理解のためのデモコードなので、BindScope とどのように連携するか知りたいです。

ありがとう。

4

1 に答える 1

0

TCustomBindScope.GetValueスコープの解決方法の詳細については、 のソース コードを参照してください。

  1. Component割り当てられている場合は使用され、そうでない場合は
  2. DataObject割り当てられている場合は使用され、そうでない場合は
  3. Owner使用されている

したがって、おそらく最も簡単な解決策は、Component(TBindScope コンポーネントの) プロパティを未割り当てのままObjectにして、オーナー フォームのプロパティにすることです。

于 2012-07-24T16:43:52.967 に答える