Flex 3.5.0; Обновите дисплейный список ComboBox на изменение dataprovider

У меня есть два связанных ComboBoxes (континенты и страны). Когда континенты, которые изменяет ComboBox, я запрашиваю XML от определенного URL. Когда я получаю это XML, я изменяю DataProvider для стран ComboBox, как это:

public function displayCountryArray( items:XMLList ):void
        {
            this.resellersCountryLoader.alpha = 0;
            this.resellersCountry.dataProvider = items;
            this.resellersCountry.dispatchEvent( new ListEvent( ListEvent.CHANGE ) );
        }

Я диспетчеризирую ListEvent. ИЗМЕНИТЕСЬ, потому что я использую его для изменения другого ComboBox, поэтому проигнорируйте что (и 1-я строка).

Так, моя проблема - это: Я выбираю "АЗИЮ" из первых континентов, затем поле комбинированного списка DATA добирается, обновил (я вижу это, потому что первый ОБЪЕКТ является объектом с маркировать '23 countries'). Я нажимаю комбинацию затем, я вижу страны.

ТЕПЕРЬ, я выбираю "Африку", первый объект отображен, при этом ComboBox закрывается, затем когда я нажимаю его, страны - все еще те из Азии. Так или иначе, если я нажимаю Item в списке, затем обновления списка правильно, и также, он имеет корректную информацию (поскольку я сказал, что он влияет на другой ComboBoxes). ТАКИМ ОБРАЗОМ, единственная проблема состоит в том, что дисплейный список не становится обновленным.

В этой функции я попробовал эти подходы

  • Преобразование XMLList к XMLCollection и даже ArrayCollection

  • Добавление this.resellersCountry.invalidateDisplayList ();

  • Инициирующие события как DATA_CHANGE и UPDATE_COMPLETE, я знаю, что они не имеют большого смысла, но я стал немного отчаянным.

Обратите внимание на то, что, когда я использовал 3.0.0 SDK, этого не произошло.

Извините, если я глуп, но события гибкого провода уничтожают меня.

5
задан Gabriel Poama-Neagra 30 March 2010 в 14:33
поделиться

2 ответа

Установка поставщика данных в раскрывающемся списке comboBox, похоже, решает эту проблему.

this.resellersCountry.dataProvider = items;
this.resellersCountry.dropdown.dataProvider = items;
11
ответ дан 18 December 2019 в 14:44
поделиться

this.resellersCountry.dropdown.dataProvider = items;

работает (Flex SDK 3.5)

Надеюсь, эта ошибка исправлена ​​в версии 4.0

{ {1}}
1
ответ дан 18 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: