2

異なるfilterFunctionsがアタッチされ、異なる列を表示する複数のデータグリッドに1つのデータソース(配列など)を使用したいと思います。まず、私は非常に単純なアプローチを使用すると思いました。

  • アレイを作成する
  • すべてのDataGridに対してArrayCollectionを作成し、「source」プロパティをArrayに設定します
  • DataGridを作成し、そのdataProviderプロパティを指定されたArrayCollectionに設定します

だから今。すべてのArrayCollectionは、独自のfilterFunction、ソート状態などを持つことができますが、メモリ内のすべてのデータを含む1つの配列のみが必要です。

今、私を完全に混乱させたところまで:新しいアイテムが配列に追加されると、もちろんイベントはディスパッチされないので、各ArrayCollectionでitemUpdatedを手動で呼び出す必要があります。Flexをより深く理解するためにコードをデバッグしているときに、この不思議な「itemUpdated」メソッドが何をするのか、特にadobeのドキュメントに記載されているように、「プロパティ」が指定されていない場合は、 null)の場合、単純な「refresh()」が発生します。デバッグ全体で「refresh()」の呼び出しは見つかりませんでした(そして、フレームワーク全体を可能な限り深く掘り下げました(ところで、コード内にたくさんの面白いコメントがあります:-)))。私が見つけた唯一のものは、CollectionChangeEventがその「item」プロパティでPropertyChangeEventとともにディスパッチされることでした。どちらが種類でしたか」

そして、予想通り、adobeからの助けはありません:-(

この全文を読んでくださった皆様、本当にありがとうございました。そして、私が混乱から抜け出し、(可能であれば)Flesを少し良く理解する方法について、答えてくれた人にさらに大きな感謝を捧げます。

すべての点で最高、

ハーバート

4

1 に答える 1

1

dataGridsにソース配列への新しい変更を表示させるには、各dataProviderに対してArrayCollection.refresh()を呼び出す必要があります。

于 2010-02-25T15:24:59.320 に答える