10

ArrayCollection にオブジェクトが取り込まれた DataGrid があります。オブジェクトのフィールドの 1 つを更新した後、画面を更新したいと考えています。実行時にデータ ソースを構築しているため、データ ソースはバインド可能ではありません (その場でバインド可能にする方法はまだわかりません。それは別の質問です)。

この状況で、グリッドで InvalidateDisplayList() を呼び出しても、何も起こらないようです。しかし、invalidateList() を呼び出すと、更新が行われます。(そして、それも非常にスムーズです。WIN32 でウィンドウを無効にすることで期待されるようなちらつきはありません。)

質問: InvalidateList と InvalidateDisplayList の違いは何ですか? ドキュメントから、どちらかが機能するようです。

4

2 に答える 2

18

invalidateList は、データが変更されたことをコンポーネントに通知し、データをリロードして再レンダリングする必要があります。

invalidateDisplayList は、コンポーネント自体を再描画する必要があることをコンポーネントに伝えます (ただし、必ずしもデータをリロードする必要はありません)。

于 2008-09-16T16:55:33.810 に答える
0

invalidateDisplayList() はフラグを設定するだけで、後で画面更新中に updateDisplayList() を呼び出すことができます。invalidateList() はあなたが望むものです。

http://livedocs.adobe.com/flex/2/langref/mx/core/UIComponent.html#invalidateDisplayList()

于 2008-09-16T16:53:28.603 に答える