9
votes

Comment capturer l'événement lorsque WPF Combobox Item est clic ou sélectionné par la touche Entrée?

J'avais essayé cela pendant quelques heures, mais cela ne fonctionne pas.

J'ai une combinobox, avec quelques articles de là, générés dynamiquement comme une boîte de recherche.

Maintenant, je souhaite capturer un événement lorsque l'utilisateur clique sur l'élément de menu déroulant ou cliquez sur l'élément de menu déroulant.

Comment y parvenir? J'ai essayé de définir un gestionnaire d'événements de souris / clavier sur ComboBox, mais cela ne fonctionne que sur la zone de texte de ComboBox, pas dans la liste déroulante.

Merci.

EDIT: J'ai oublié de mentionner que j'ai personnalisé DataTemplate sur mon ComboBox. J'ai essayé une autre approche qui définit l'événement sur Combobox.ItemContainerStyle.

J'ai essayé la prévisibilitéDown, mais cela n'est pas capturé. Aucune idée?


0 commentaires

6 Réponses :


11
votes

au lieu d'utiliser le mouseleftbuttonown événement, Utilisez le PreviewMousEftButTondown Event

WPF prend en charge le concept "Boubelle d'événement", que lorsqu'un événement est viré, il bulle un élément supérieur de l'arbre qui implémente cet événement. Mais la combinaison elle-même implémente déjà l'événement de clic. Donc, vous devez le dire à Bubble "Down".


2 commentaires

Merci, j'ai oublié de mentionner que j'ai personnalisé DataTemplate sur mon ComboBox. J'ai essayé une autre approche qui définit l'événement sur Combobox.ItemcontainerStyle.