我想在鼠标单击 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
事件,但它没有被调用。
一个更笼统的问题:我如何才能看到确实存在哪些事件,哪些处理程序对应于它们以及它们何时实际执行某些操作?例如,什么告诉我对于 aMouseDoubleClickEvent
我需要 a MouseButtonEventHandler
?也许对于MouseLeftButtonDownEvent
我需要一些其他处理程序,这就是为什么它不起作用?
我也尝试了子类化ListBoxItem
和覆盖OnMouseLeftButtonDown
- 但它也没有被调用。
马克