2009-06-02 7 views
0

Je rencontre un problème avec un ItemRenderer personnalisé que j'ai écrit pour un DataGrid. Avec ce ItemRenderer, il est possible que le contenu dépasse la largeur et la hauteur de la cellule DataGrid - et quand cela arrive, des barres de défilement apparaissent, me laissant faire défiler la cellule individuelle. Ce que je voudrais cependant, c'est que lorsque le contenu de la cellule est trop grand, le DataGrid entier défile, plutôt que les cellules individuelles. Maintenant, lorsque j'ai défini les stratégies de barre de défilement horizontale et verticale du composant ItemRenderer personnalisé sur «off», le défilement vertical sur le DataGrid que je recherche (les cellules individuelles s'étendent pour s'adapter à la hauteur totale du contenu) ne pas avoir de défilement horizontal. Au lieu de cela, tout contenu trop large pour la cellule est coupé. Incidemment, définir la règle de barre de défilement horizontale de DataGrid sur "on" n'a aucun effet, la barre de défilement est dessiné, mais rien ne défileEst-il possible d'obtenir un ItemRenderer personnalisé pour faire défiler le DataGrid plutôt que sa cellule?

Existe-t-il un moyen de forcer le DataGrid à défiler horizontalement lorsque le contenu de mon ItemRenderer personnalisé est trop large pour la cellule?

Répondre

0

Vous devrez peut-être trouver un moyen de calculer et d'agrandir horizontalement la taille du DataGrid dans un canevas afin qu'il affiche toutes les cellules et que la barre de défilement apparaisse dans le canevas.

+0

J'ai joué avec ça, sans succès. Le problème ici est que le rendu d'élément personnalisé est référencé dans le DataGrid en tant que "ClassFactory" plutôt qu'une instance concrète d'une sorte de UIComponent. Cela signifie que je n'ai pas le moyen de déterminer la largeur de mon rendu d'élément lors de l'exécution, de sorte que je puisse mettre à jour la largeur du DataGrid. Des pensées? – Dan

+0

Vous pourriez être en mesure de saisir la largeur de la cellule si. – CookieOfFortune

+0

En fait, essayez de plonger dans le code source pour le DataGrid, il contient une référence à ItemRenderers, mais le problème est que les rendus sont réutilisés, la logique derrière déterminer ceux qui sont affichés ou non pourrait être déroutant cependant. – CookieOfFortune

Questions connexes