Flex Datagrid Checkbox cassé sur Scrolling

voix
0

J'ai une case à cocher dans un DataGrid Flex, et quand je défiler, d'autres lignes sont au hasard cochée / décochée.

Après avoir lu sur: Création d' une colonne de RadioButtons dans Adobe Flex

il est clair que les itemRenderers sont recyclés se, mais le problème que j'ai avec la solution présentée il y a, il se déplace plus sur le point de vue dans le modèle.

Quelqu'un at-il une meilleure façon de le résoudre, qui ne me force pas à mettre l'information pour l'interface utilisateur dans mes classes de modèle actionscript? (Dans mon cas, je suis en train de convertir les données XML entrants vers les classes actionscript, et ils commencent à être lié à mon DataGrid).

Merci pour l'aide.


Merci tout le monde. d'excellents conseils. malheureusement, il devenait trop frais généraux pour garder le modèle pur, donc je viens pollué le modèle comme le lien dans mon message d'origine. :( au moins cela fonctionne.

Chetan, belle idée .. j'ai essayé de travailler avec ce pendant presque une journée entière sans chance cependant.

brd6644, de bonnes pensées sur la séparation des deux classes de modèle .. je pourrais revenir en arrière et faire plus tard.

Créé 28/07/2009 à 23:18
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Vous pouvez créer une sous-classe de DataGrid interne stocke ce sont les lignes cochée / décochée (Array / Collection de Boolean) mais vous auriez un diable d'un temps que maintenant en phase avec le fournisseur de données lorsqu'elle est triée ou filtrée. Je suppose que vous pouvez utiliser un dictionnaire qui est calée par l'objet dans chaque index du fournisseur de données et une valeur avec une valeur booléenne pour indiquer si elle est sélectionnée. Ce serait au moins vous isoler des problèmes de tri / filtrage. Cela ne fonctionnera pas si vous avez des références en double dans votre dataProvider.

Sinon, vous pouvez créer une sous-classe de votre classe de modèle ActionScript et ajoutez la propriété « sélectionnée » pour, puis écrire quelques méthodes utilitaires simples pour « convertir » entre les deux. De cette façon, votre vue ne traite que de la classe « ViewModel » et d'autres couches (en particulier le côté serveur) ne traite que le vrai « modèle » classe.

Créé 29/07/2009 à 00:37
source utilisateur

voix
0

Ajoutant à ce que cliff.meyers dit, il y a une troisième possibilité de créer une classe IList personnalisée comme décrit dans ce billet de blog par Alex Hori. Il est assez intelligent en fait, et est plus propre car il ne nécessite pas le composant ou le sous - classement polluer vos classes de modèle.

Créé 29/07/2009 à 01:35
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more