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

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

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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top