J'ai deux ComboBox associées (continents et pays). Lorsque les changements ComboBox continents je demande un XML à partir d'une certaine URL. Quand je reçois que XML je change le fournisseur de données pour la zone de liste déroulante de pays, comme ceci:Flex 3.5.0; Mise à jour de la liste d'affichage de ComboBox lors de la modification de dataprovider
public function displayCountryArray(items:XMLList):void
{
this.resellersCountryLoader.alpha = 0;
this.resellersCountry.dataProvider = items;
this.resellersCountry.dispatchEvent(new ListEvent(ListEvent.CHANGE));
}
J'envoie la ListEvent.CHANGE parce que je l'utilise pour changer une autre ComboBox donc s'il vous plaît ignorer (et la 1ère ligne). Donc, mon problème est le suivant: je sélectionne "ASIA" sur les premiers continents, puis les données de la combobox DATA sont mises à jour (je peux voir cela parce que le premier ITEM est un item avec le label '23 pays '). Je clique sur le combo puis je peux voir les pays.
Maintenant, je sélectionne "Afrique", le premier article est affiché, avec le ComboBox étant fermé, puis quand je clique dessus, les pays sont toujours ceux d'Asie. Quoi qu'il en soit, si je clique sur un élément dans la liste, alors la liste se met à jour correctement, et aussi, il a l'information correcte (comme je l'ai dit, cela affecte les autres ComboBox). Le seul problème est que la liste d'affichage n'est pas mise à jour.
Dans cette fonction, j'ai essayé ces approches
Converting XMLList à XMLCollection et même ArrayCollection
Ajout this.resellersCountry.invalidateDisplayList(); Déclencher des événements comme DATA_CHANGE et UPDATE_COMPLETE Je sais qu'ils n'ont pas beaucoup de sens, mais je suis un peu désespérée.
Veuillez noter que lorsque j'ai utilisé le SDK 3.0.0 cela ne s'est pas produit. Désolé si je suis stupide, mais les événements flex me détruisent.
désolé, mais j'ai déjà changé l'interface graphique et je ne peux pas vérifier votre solution. Je vais essayer dès que j'en aurai l'occasion et accepter votre réponse. Merci encore. –
vérifié. ça marche. –
A travaillé pour moi aussi. – Konsumierer