無効化リストと無効化表示リストの違いは何ですか?
-
09-06-2019 - |
質問
ArrayCollection 内のオブジェクトが入力された DataGrid があります。オブジェクトのフィールドの 1 つを更新した後、画面を更新したいと考えています。データ ソースは実行時に構築しているため、バインド可能ではありません (オンザフライでバインド可能にする方法はまだ理解していません。これは別の質問です)。
この状況では、グリッド上で InvalidateDisplayList() を呼び出しても何も起こらないようです。ただし、invalidateList() を呼び出すと、更新が行われます。(また、非常にスムーズです。WIN32 でウィンドウを無効にするときに予想されるようなちらつきもありません。)
そこで質問:InvalidateList と InvalidateDisplayList の違いは何ですか?ドキュメントによると、どちらかが機能するはずです。
解決
validateList は、データが変更されたため、データを再ロードして再レンダリングする必要があることをコンポーネントに伝えます。
validateDisplayList は、コンポーネント自体を再描画する必要があることをコンポーネントに伝えます (ただし、必ずしもデータを再ロードする必要はありません)。
他のヒント
validateDisplayList() は単にフラグを設定するだけなので、後で画面更新中に updateDisplayList() を呼び出すことができます。validateList() が必要なものです。
http://livedocs.adobe.com/flex/2/langref/mx/core/UIComponent.html#invalidateDisplayList()