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

StackOverflow https://stackoverflow.com/questions/2235312

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 ...

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top