Переключение между поставщиками данных (Flex 2.0) - PullRequest
0 голосов
/ 05 июня 2009

Предположим, у меня есть одно поле со списком, и я переключаю его провайдера данных с oldDataProvider на newDataProvider с помощью ActionScript. Оба поставщика данных являются ArrayCollections. Затем, когда происходит изменение в oldDataProvider ArrayCollection, оно влияет на поле со списком, хотя больше не является его поставщиком данных. В частности, при удалении элемента из oldDataProvider (в диапазоне значений newDataProvider) он уменьшает значение selectedIndex поля со списком на единицу, изменяя выбранный элемент.

Это хорошая практика для переключения поставщиков данных, как это? Я подозреваю, что это корень проблемы. Или лучше иметь только одного поставщика данных и соответственно корректировать его значения?

1 Ответ

2 голосов
/ 06 июня 2009

На самом деле это ошибка компонента ComboBox, и она все еще существует в Flex 3. Вы должны подать ее в базу данных отслеживания ошибок Adobe. Вот расширенный класс ComboBox, который должен решить проблему:

package test
{
import mx.controls.ComboBox;
import mx.events.CollectionEvent;

public class FixedComboBox extends ComboBox
{
    public function FixedComboBox()
    {
        super();
    }

    override public function set dataProvider(value:Object):void
    {
        if (collection)
            collection.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
        super.dataProvider = value;
    }

}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...