我想在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
- 但它也不會被調用。
馬克
我已經選擇用按鈕包裝每個listboxitem,而不是使用按鈕事件。 https://stackoverflow.com/questions/17057022/getting-listbox-item-index-from-button-click – Dummy 2017-06-01 04:45:54