Cuando es el punto de la derecha (desde el punto de vista del ciclo de vida) para establecer proveedor de datos para el envase LIST en Flex 3

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

Pregunta

Estoy haciendo un recipiente LISTA con mi propio procesador de elementos para visualizar el archivo XML.

Ahora, estoy reemplazando el método public override function set data(value:Object):void en mi procesador de elementos, el problema es que esta función se llama muchas veces (!!) (más entonces el proveedor de datos de longitud).

Tal vez no estoy estableciendo el derecho proveedor de datos, aquí es cómo lo hago:

En primer lugar declarar la propiedad enlazable:

[Bindable]
private var _listDataProvider:XMLListCollection;

A continuación, la creación de objeto de lista:

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

A continuación, cargar el XML (con URLLoader) y en el resultado haciendo:

_listDataProvider = new XMLListCollection(xml..Person);

El XMLListCollection acumulación bien (puedo verlo en depuración).

¿Qué estoy haciendo mal ?????

Gracias chicos ...

¿Fue útil?

Solución

Se ve bien para mí, tengo la sensación de la Lista de Flex 3 y los componentes relacionados dataProvider a establecer los datos de un par de veces para cada procesador de elementos de la primera ronda (ineficiencias en el marco). La primera vez, se podría establecer a NULL (es que suceda?), Entonces la próxima vez que podría ponerlo en el valor.

Para evitar esto, simplemente hacer algo como:

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

Esto debería hacer el truco.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top