Flex 3のリストコンテナのデータプロビエを設定するための正しいポイント(ライフサイクルビューから)がいつですか
-
19-09-2019 - |
質問
XMLファイルを表示するために、自分のアイテムレンダラーを備えたリストコンテナを作成しています。
今、私はオーバーライドしています public override function set data(value:Object):void
私のアイテムレンダラーの方法では、この関数は何度も呼ばれていることです(!!)(データプロバイダーの長さよりも)。
たぶん、私はデータプロバイダーを正しく設定していません、ここに私がそれをする方法があります:
最初にバインド可能なプロパティを宣言します:
[Bindable]
private var _listDataProvider:XMLListCollection;
次に、リストオブジェクトを作成します。
<mx:List id="list" dataProvider="{_listDataProvider}" itemRenderer="myItemRenderer" />
次に、XMLを(Urlloaderを使用して)ロードし、結果で次のことを行います。
_listDataProvider = new XMLListCollection(xml..Person);
xmllistCollectionのビルドアップOK(デバッグで見ることができます)。
私は何を間違っていますか?????
みんなありがとう...
解決
それは私には正しいように見えます、私はFlex 3リストと関連するDataProviderコンポーネントが最初のラウンド(フレームワークの非効率性)でデータを数回設定すると感じています。初めて、彼らはそれをnullに設定するかもしれません(それは起こっていますか?)、そして次に彼らがそれを価値に設定するかもしれません。
これを回避するには、次のようなことをしてください。
public function set data(value:Object):void
{
if (super.data == value)
return;
super.data = value;
}
それはトリックをするはずです。
所属していません StackOverflow