Como capturar um clique do mouse em um item em uma caixa de listagem no WPF?

Eu quero ser notificado quando um item em um ListBox é clicado pelo mouse, se ele já está selecionado ou não.

Eu procurei e encontrei isto: (http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html veja os comentários)

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));

Isso funciona, mas faz isso por umDoubleClick. Eu não posso fazê-lo funcionar por um único clique embora. eu tenteiMouseLeftButtonDownEvent - como não parece haver umMouseClick evento, mas não está sendo chamado.

Uma pergunta secundária um pouco mais geral: como posso ver quais eventos existem e quais manipuladores correspondem a eles e quando eles realmente fazem alguma coisa? Por exemplo, o que me diz que por umMouseDoubleClickEvent eu preciso deMouseButtonEventHandler? Talvez por umMouseLeftButtonDownEvent Eu preciso de algum outro manipulador e é por isso que não está funcionando?

Eu também tentei subclassificaçãoListBoxItem e anularOnMouseLeftButtonDown - mas também não é chamado.

Marc

questionAnswers(6)

yourAnswerToTheQuestion