У меня есть два связанных 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, этого не произошло.
Извините, если я глуп, но события гибкого провода уничтожают меня.
Установка поставщика данных в раскрывающемся списке comboBox, похоже, решает эту проблему.
this.resellersCountry.dataProvider = items;
this.resellersCountry.dropdown.dataProvider = items;
this.resellersCountry.dropdown.dataProvider = items;
работает (Flex SDK 3.5)
Надеюсь, эта ошибка исправлена в версии 4.0
{ {1}}