Je veux utiliser une boîte combo pour saisir une valeur entière simple.
Dans mon application, certaines valeurs numériques ont des significations particulières, mais toute valeur numérique doit pouvoir être saisie (tapée).
La boîte combo doit donc présenter un champ d'édition avec une flèche déroulante vers la droite.
Si l'on clique sur la flèche de la liste déroulante, celle-ci doit présenter une liste de explications (chaînes de caractères) pour les valeurs numériques spéciales qui ont une signification particulière (par exemple "103 - Wait for next turn"
).
Si l'utilisateur clique sur une entrée de la liste déroulante (au lieu de saisir directement la valeur correspondante), la valeur numérique correspondante doit être transférée dans le champ d'édition.
J'ai essayé ce qui suit :
- J'ai défini les paramètres de la ComboBox
IsEditable
à true - Je lie le
ItemsSource
à une collection d'objets qui ont à la fois une propriété numérique (nommée"Value"
) et une propriété de type chaîne de caractères (nommée"Explanation"
). - J'ai mis le
DisplayMemberPath
à la propriété"Explanation"
(le nom de la propriété string ci-dessus)
Avec cela en place, je peux taper librement n'importe quel numéro que je veux, et l'explication de la chaîne de caractères de chaque numéro spécial est correctement affichée dans la liste déroulante. C'est exactement ce que je veux.
Cependant, lorsque je sélectionne l'une des explications dans la liste déroulante, c'est la chaîne explicative qui est transféré dans le champ d'édition, pas la valeur numérique correspondante.
Question : Comment puis-je faire en sorte que la boîte combo transfère la propriété numérique ( "Value"
) au lieu du texte d'explication lorsque je clique sur un élément de la liste déroulante ?