8
votes

WPF Combobox maxdropdownitems

existe-t-il de toute façon pour définir le nombre maximum d'éléments déroulants plutôt que la hauteur de dépose maximale dans WPF? Merci! -Kevin


2 commentaires

Pourquoi ne laissez-vous pas simplement limiter le montant que vous chargez dans le comboBox ? Ajouter seulement à votre max. Qu'attendriez-vous que le contrôle fasse quand aller au-delà du maximum? Jeter une exception? Tout simplement pas l'ajouter?


Non ... plutôt que de codage dur max déposer la hauteur. Je préférerais être capable de définir la quantité d'éléments de déroulement maximum à afficher. Désolé, je l'ai libellé bizarre, je pensais aux bacs combo de VB où ils ont une chute maximale affichée à la fois.


3 Réponses :


2
votes

Il n'y a pas de manière directe de dire Afficher x nombre d'éléments. Vous devez utiliser la propriété maxdropdownheight pour limiter la taille de sa taille. Étant donné que cette propriété n'est pas calculée par le contrôle et est pleine personnalisable, vous pouvez écrire quelque chose pour calculer la hauteur d'un élément, puis plusieurs éléments que vous souhaitez afficher, puis définir maxdropdownheight basé sur celui-ci. < / p>


1 commentaires

+1 bonne idée, tant que tous les articles ont la même hauteur. Cela devrait probablement être fait dans une propriété attachée. Je vais ajouter une réponse qui a le code réel pour le faire.



12
votes

Cette question ne peut être significative que si tous vos articles ont la même hauteur. Sinon, lorsque vous faites défiler votre Combobox de haut en bas pour voir différentes parties de la liste des éléments que votre ComboBox serait plus grand et plus petit que vous défilez.

Si tous vos articles sont la même hauteur, c'est très Facile à faire en utilisant une propriété attachée: xxx

avec cette propriété que vous pouvez écrire: xxx


2 commentaires

J'ai testé ce code directement. Le XAML ne génère pas d'erreur ou de quoi que ce soit lorsque j'exécute l'application, la hauteur de la liste de la boîte combo reste à environ 5 articles et essayé une valeur de 15.


Il y a un saut entre les tailles visibles, lorsque la combinaison est ouverte pour la première fois, je fixe la diffamatique à la normale. Et maintenant ça marche exactement comme j'en ai besoin. Merci :)



0
votes

J'ai eu un problème similaire dans lequel la liste déroulante ComboBox n'occupera pas de l'espace vertical total - je recevrais une barre de défilement verticale après 3 à 4 éléments malgré un espace vertical suffisant pour 20 éléments. J'ai créé un templist et ajouté ComboBoxitems à cette liste. A-t-il affecté ce modèle à la liaison des articles de Combobox, qui a donné une hauteur de liste déroulante initiale de la boîte déroulante. Maintenant, la boîte combo pourrait afficher 20 éléments sans barre de défilement verticale.

Maxdropdownheight n'a pas fonctionné, ni avant, ni après l'initialisation de la vue.

J'espère que cela aide quelqu'un!

merci,

rdv


0 commentaires