2012-03-21 5 views
1

У меня есть случай, когда SelectedItem не вызывается после того, как поставщик данных изменил для выпадающий список. Есть ли способ определить, произошло ли такое изменение? БлагодаряЕсть ли событие dataProviderChange для раскрывающегося списка?

+2

Что значит «Избранный» не называется? Пожалуйста, дополните. Предоставьте код или значительно лучшее объяснение, и мы можем вам помочь. –

+0

Выбранный переключатель SelectIndex должен всегда вызываться и устанавливать значение -1. Компоненты List всегда были немного ошибочными в этом. (Но, опять же, необходимо, чтобы вызывающий_датчик данных был также вызван) –

ответ

1

Просто о каждой публичной собственности в Flex Framework имеет событиечрезвычайную «PropertyChanged», что отправляется из метода набора свойств. Они используются в основном для целей привязки, но обычно формально не документируются.

Метод DataProvider для набора DropDownList действительно отправляет событие dataProviderChanged. Код состоит из нескольких слоев вверх в иерархии, как часть SkinnableDataContainer, или если скин для вашего «SkinnableDataContainer» имеет группу данных, он отправляется из DataGroup.

Но это событие, вероятно, не будет отображаться с помощью кодового намека на MXML. Вы должны будете слушать его в ActionScript:

myList.addEventListener('dataProviderChanged', onDataProviderChanged); 

Имейте в виду, что это событие будет всегда отправляется при изменении DataProvider, независимо от того, что происходит с собственностью SelectedItem.

0

Вы можете слушать изменения в SelectedItem в DropDownList через IndexChangeEvent, иллюстрируются ниже код:

<s:DropDownList id="dl_mydl" 
    dataProvider="{dataProvider}" 
    change="dropDownListChangeHandler(event)" 
/> 

protected function dropDownListChangeHandler(event:IndexChangeEvent) : void 
{ 
//DO SOMETHING 
}