Flex не имеет определенных событий привязки данных, как, например, ASP .Net. Вы должны следить за свойством dataProvider, как сказал Джон в первом ответе, а не просто за списком или его свойством dataProvider. Допустим, у вас есть такая настройка:
<!-- Assume you have extracted an XMLList out of the result
and attached it to the collection -->
<mx:HttpService id="svc" result="col.source = event.result.Project"/>
<mx:XMLListCollection id="col"/>
<mx:ComboBox id="cbProject" dataProvider="{col}"/>
Теперь, если вы установите переключатель, как это:
// Strategy 1
ChangeWatcher.watch(cbProject, "dataProvider", handler) ;
Ваш обработчик будет не срабатывать при возврате данных. Зачем? Поскольку сам dataProvider не изменился - его базовая коллекция изменилась. Чтобы вызвать это, вы должны сделать это:
// Strategy 2
ChangeWatcher.watch(cbProject, ["dataProvider", "source"], handler) ;
Теперь, когда ваша коллекция обновится, ваш обработчик сработает. Если вы хотите, чтобы это работало с использованием Стратегии 1, не устанавливайте ваш dataProvider в MXML. Скорее обработайте событие collectionChange вашего XMLListCollection и в AS перезаписайте dataProvider ComboBox.
Это точно так же, как событие с привязкой к данным? Нет, но я использовал их и никогда не было проблемы. Если вы хотите, чтобы абсолютно были уверены, что ваши данные имеют привязку , просто поместите changeWatcher в свойство selectedItem вашего комбинированного списка и выполните там обработку. Просто будьте готовы к тому, что это событие сработает несколько раз, и обработайте его соответствующим образом.