Quando è il punto giusto (dal punto di vista del ciclo di vita) per impostare provider di dati per il contenitore LIST su Flex 3

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

Domanda

Sto facendo un contenitore LIST con il mio renderer di voci per visualizzare file xml.

Ora, sto override del metodo public override function set data(value:Object):void nel mio oggetto renderer, il problema è che questa funzione stato chiamato molte volte (!!) (più quindi il fornitore di dati di lunghezza).

Forse non sto impostando il giusto fornitore di dati, ecco come lo faccio:

Prima di dichiarare proprietà associabile:

[Bindable]
private var _listDataProvider:XMLListCollection;

Quindi, la creazione di oggetto elenco:

<mx:List id="list" dataProvider="{_listDataProvider}" itemRenderer="myItemRenderer" />

Quindi, caricare il xml (con URLLoader) e nel risultato facendo:

_listDataProvider = new XMLListCollection(xml..Person);

Il XMLListCollection accumulo ok (posso vederlo in debug).

Che cosa sto facendo di sbagliato ?????

Grazie ragazzi ...

È stato utile?

Soluzione

Sembra giusto per me, ho la sensazione che il List Flex 3 e componenti relativi dataProvider metterò i dati un paio di volte per ogni elemento renderer al primo turno (inefficienze del quadro). La prima volta, si potrebbe impostare a NULL (è che succede?), Quindi la prossima volta che potrebbe impostare il valore.

Per aggirare il problema, basta fare qualcosa di simile:

public function set data(value:Object):void
{
    if (super.data == value) 
        return;
    super.data = value;
}

Questo dovrebbe fare il trucco.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top