我想在鼠标单击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));
这段代码可以用于双击事件,但是我无法将其应用到单击事件上。我尝试使用MouseLeftButtonDownEvent
,因为没有MouseClick
事件,但它没有被调用。另一个一般性的问题是: 如何查看已存在的事件以及哪些处理程序与它们对应,以及何时它们实际上会起作用?例如,怎样才能知道需要
MouseButtonEventHandler
处理程序来处理MouseDoubleClickEvent
事件?也许对于MouseLeftButtonDownEvent
事件而言,我需要其他的处理程序,这就是它不起作用的原因?我还尝试了继承
ListBoxItem
并重写OnMouseLeftButtonDown
方法,但它也没有被调用。Marc