Quand le point droit (du point de vue du cycle de vie) pour définir fournisseur de données pour conteneur LIST sur Flex 3
-
19-09-2019 - |
Question
Je fais un conteneur de liste avec mon propre article pour afficher le fichier renderer xml.
Maintenant, je redéfinissant la méthode public override function set data(value:Object):void
dans mon article renderer, le problème est que cette fonction été appelée plusieurs fois (!!) (plus la longueur fournisseur de données).
Peut-être que je ne suis pas le droit de mettre fournisseur de données, voici comment je le fais:
Tout d'abord déclarer propriété liable:
[Bindable]
private var _listDataProvider:XMLListCollection;
Ensuite, la création d'objet LISTE:
<mx:List id="list" dataProvider="{_listDataProvider}" itemRenderer="myItemRenderer" />
Ensuite, le chargement du xml (avec URLLoader) et le résultat fait:
_listDataProvider = new XMLListCollection(xml..Person);
La XMLListCollection accumulation ok (je peux le voir dans le débogage).
Qu'est-ce que je fais mal ?????
Merci les gars ...
La solution
Il semble droit à moi, je sens la liste Flex 3 et composants connexes dataProvider tournerai les données plusieurs fois pour chaque élément Renderer le premier tour (manque d'efficacité dans le cadre). La première fois, ils pourraient le mettre à null (est-ce qui se passe?), La prochaine fois ils pourraient le mettre à la valeur.
Pour contourner ce problème, il suffit de faire quelque chose comme:
public function set data(value:Object):void
{
if (super.data == value)
return;
super.data = value;
}
Cela devrait faire l'affaire.