Когда находится правильная точка (из представления жизненного цикла), чтобы установить продюсер данных для контейнера списка на Flex 3

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

Вопрос

Я делаю контейнер списка с моим собственным рендерингом элемента для отображения файла XML.

Теперь я переоцениваю public override function set data(value:Object):void Метод в моем элементе рендерера, проблема заключается в том, что эта функция называлась много раз (!!) (более чем длины поставщика данных).

Может быть, я не устанавливаю поставщика данных правильно, вот как я это делаю:

Первое объявление связного имущества:

[Bindable]
private var _listDataProvider:XMLListCollection;

Затем создание объекта списка:

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

Затем загрузка XML (с помощью UrlloAder) и в результате получения:

_listDataProvider = new XMLListCollection(xml..Person);

Настройка XMllistCollection OK (я вижу его в отладке).

Что я делаю не так?????

Спасибо, парни...

Это было полезно?

Решение

Это выглядит правильно для меня, у меня есть ощущение, что список Flex 3 и связанные компоненты DataProvider будут устанавливать данные несколько раз для каждого визуализатора элемента в первый раунд (неэффективность в структуре). В первый раз они могут установить его на NULL (это происходит?), Затем в следующий раз, когда они могут установить его на значение.

Чтобы обойти это, просто сделайте что -то вроде:

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

Это должно делать свое дело.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top