我ListBox在我的wpf窗口中绑定了一个ObervableCollection.如果有人点击了某个元素ListBox(就像链接一样),我想打开浏览器.谁能告诉我怎么做?我发现了listboxviews的一些东西,它只是以这种方式工作还是有一种方法只是使用ListBox?
你的
塞巴斯蒂安
我希望在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));
Run Code Online (Sandbox Code Playgroud)
这是有效的,但它是为了它DoubleClick.虽然我不能让它工作一次.我试过MouseLeftButtonDownEvent- 因为似乎没有MouseClick事件,但它没有被调用.
一个更普遍的侧面问题:我怎样才能看到哪些事件确实存在,哪些处理程序与它们对应以及何时实际执行某些操作?例如,什么告诉我,MouseDoubleClickEvent我需要一个MouseButtonEventHandler?也许对于MouseLeftButtonDownEvent我需要一些其他处理程序,这就是为什么它不起作用?
我也尝试了子类化ListBoxItem和覆盖OnMouseLeftButtonDown- 但它也没有被调用.
渣