Quando é o ponto certo (da visualização do ciclo de vida) para definir o Provier de dados para o contêiner de lista no Flex 3
-
19-09-2019 - |
Pergunta
Estou fazendo um contêiner de lista com meu próprio renderizador de item para exibir o arquivo XML.
Agora, estou substituindo o public override function set data(value:Object):void
Método no meu renderizador de itens, o problema é que essa função foi chamada muitas vezes (!!) (mais do que o comprimento do provedor de dados).
Talvez eu não esteja definindo o provedor de dados corretamente, eis como eu faço:
Primeiro declare propriedade vinculável:
[Bindable]
private var _listDataProvider:XMLListCollection;
Em seguida, criando objeto de lista:
<mx:List id="list" dataProvider="{_listDataProvider}" itemRenderer="myItemRenderer" />
Em seguida, carregando o XML (com urlloader) e no resultado:
_listDataProvider = new XMLListCollection(xml..Person);
O XMLLISTCOLLECTION Build-Up OK (eu posso vê-lo em depuração).
O que estou fazendo errado?????
Obrigado rapazes...
Solução
Parece certo para mim, sinto que a lista Flex 3 e os componentes relacionados a DataProvider definirá os dados algumas vezes para cada renderizador de item na primeira rodada (ineficiências na estrutura). Na primeira vez, eles podem defini -lo como nulo (isso está acontecendo?), Da próxima vez que eles podem defini -lo para o valor.
Para contornar isso, faça algo como:
public function set data(value:Object):void
{
if (super.data == value)
return;
super.data = value;
}
Isso deve fazer o truque.