Je souhaite recevoir une notification lorsqu'un élément d'un contrôle ListBox est cliqué à la souris, qu'il soit déjà sélectionné ou non.Comment capturer un clic de souris sur un élément dans un ListBox dans WPF?
J'ai cherché et trouvé ceci: (http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html voir les commentaires)
private void AddDoubleClickEventStyle(ListBox listBox, MouseButtonEventHandler mouseButtonEventHandler)
{
if (listBox.ItemContainerStyle == null)
listBox.ItemContainerStyle = new Style(typeof(ListBoxItem));
listBox.ItemContainerStyle.Setters.Add(new EventSetter()
{
Event = MouseDoubleClickEvent,
Handler = mouseButtonEventHandler
});
}
//Usage:
AddDoubleClickEventStyle(listView1, new MouseButtonEventHandler(listView1_MouseDoubleClick));
Cela fonctionne, mais il le fait pour un DoubleClick
. Je ne peux pas le faire fonctionner pour un seul clic si. J'ai essayé MouseLeftButtonDownEvent
- comme il ne semble pas y avoir un événement MouseClick
, mais il n'est pas appelé. Question un peu plus générale: Comment puis-je voir quels événements existent et quels gestionnaires les correspondent et quand ils font réellement quelque chose? Par exemple, ce qui me dit que pour un MouseDoubleClickEvent
j'ai besoin d'un MouseButtonEventHandler
? Peut-être que pour un MouseLeftButtonDownEvent
j'ai besoin d'un autre gestionnaire et c'est pourquoi ça ne fonctionne pas?
J'ai également essayé sous-classement ListBoxItem
et remplacer OnMouseLeftButtonDown
- mais il n'est pas appelé non plus.
Marc
J'ai choisi d'enrober chaque listbox avec le bouton et d'utiliser plutôt l'événement button. https://stackoverflow.com/questions/17057022/getting-listbox-item-index-from-button-click – Dummy