Quando è il punto giusto (dal punto di vista del ciclo di vita) per impostare provider di dati per il contenitore LIST su Flex 3
-
19-09-2019 - |
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 ...
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.