Flex ne possède pas d'événements de liaison de données spécifiques comme le fait ASP .Net.Vous devez surveiller la propriété dataProvider comme le dit John dans la première réponse, mais pas simplement la liste déroulante ou sa propriété dataProvider. Disons que vous avez une configuration comme ceci:
<!-- 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}"/>
Maintenant, si vous définissez un ChangeWatcher comme ceci:
// Strategy 1
ChangeWatcher.watch(cbProject, "dataProvider", handler) ;
votre gestionnaire ne pas se déclencher lorsque les données revient. Pourquoi? Parce que le dataProvider lui-même n'a pas changé - sa collection sous-jacente a fait. Pour déclencher cela, vous devez faire ceci:
// Strategy 2
ChangeWatcher.watch(cbProject, ["dataProvider", "source"], handler) ;
Maintenant, lorsque votre collection a été mise à jour, votre gestionnaire se déclenchera. Si vous voulez le faire fonctionner en utilisant la stratégie 1, ne pas définir votre dataProvider en MXML. Au lieu de cela, gérer l'événement collectionChange de votre XMLListCollection et dans AS, écraser le dataProvider de la zone de liste déroulante.
Est-ce exactement la même chose qu'un événement de databound? Non, mais je les ai utilisés et je n'ai jamais eu de problème. Si vous voulez être absolument sûr que vos données a lié, il suffit de mettre un changeWatcher sur la propriété selectedItem de votre liste déroulante et y faire votre traitement. Soyez simplement prêt à déclencher plusieurs fois cet événement et à le gérer de manière appropriée.
Le lien Adobe.com est rompu. – qualidafial