Как захватить щелчок мышью на элементе в ListBox в WPF?
Я хочу получать уведомления, когда элемент в ListBox щелкается мышью, независимо от того, выбран он или нет.
Я искал и нашел это :(http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html смотрите комментарии)
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));
Это работает, но это делает это дляDoubleClick
, Я могу'хотя это работает на один клик. Я старалсяMouseLeftButtonDownEvent
- как неткажется,MouseClick
событие, но этоне вызывается.
Немного более общий вопрос: как я могу увидеть, какие события существуют и какие обработчики им соответствуют и когда они действительно что-то делают? Например, что говорит мне, что дляMouseDoubleClickEvent
мне нужноMouseButtonEventHandler
? Может быть дляMouseLeftButtonDownEvent
Мне нужен какой-то другой обработчик, и этопочемуне работает?
Я также пробовал создавать подклассыListBoxItem
и переопределитьOnMouseLeftButtonDown
- но это не такТебя тоже не зовут.
Марк