2010-07-14 3 views
1

J'ai un itemRenderer pour une liste où j'affirme juste les articles et leurs détails. Je veux garder les détails invisibles et avoir un bouton, Afficher les détails, dans mon fichier mxml principal qui, lorsqu'on clique dessus, rend les détails visibles.comment pouvons-nous accéder à un composant dans un itemRenderer à partir du mxml principal?

Donc, mon problème est dans le clickHandler comment puis-je accéder à la propriété details dans le itemRenderer du mxml principal?

Merci d'avance pour votre aide

Répondre

0

Il y a quelques façons d'aborder ce sujet.

L'une consiste à utiliser un objet global Singleton qui contient la valeur "ShowDetails". Chaque itemRenderer peut accéder à cet objet et modifier ses paramètres. ModelLocator de Cairngorm est un exemple de singleton couramment utilisé de cette manière. Je crois que swiz a quelque chose de similaire. Vous pouvez également rouler le vôtre si nécessaire.

Vous pouvez essayer d'étendre la classe List La liste conserve itemRenderers dans un tableau, que je crois est protégé. Vous devrez étendre la liste et rendre public ce tableau protégé. Ensuite, vous serez en mesure d'accéder à la liste des itemRenderers et de modifier les propriétés directement sur eux.

Cependant, je ne suis pas sûr que je recommanderais l'une ou l'autre approche. Un itemRenderer devrait vraiment choisir ce qu'il doit afficher en fonction des données qu'il affiche. pas une variable globale. Pouvez-vous changer les objets dans votre dataProvider et avoir la mise à jour de itemRenderer en conséquence? C'est une troisième option; même si je ne suis pas sûr que ce soit meilleur, ou pire, que les deux approches précédentes.

0

Vous pouvez avoir une variable dans le tableau DataProvider appelée 'show' qui est définie sur false. Dans l'itemrenderer, liez la propriété visible du composant details à data.show.

Lorsque le bouton Afficher est enfoncé, parcourez le tableau dataProvider et définissez la propriété 'show' sur true. Cela fonctionne

Bish

+0

je vais proposer un champ dans la dataprovider, mais comme j'interprété la question de tous les documents, je me suis dit une variable pour les contrôler tous. – adamcodes

Questions connexes