注意:我已經找到了解決我的問題的方法,所以我將其作爲參考目的發佈,儘管我很樂意接受更好的解決方案。當點擊行時,Silverlight DataGrid MouseLeftButtonDown事件不會引發
我試圖鉤住UIElement.MouseLeftButtonDown提供關於Silverlight的DataGrid的雙擊功能,但是當我使用XAML或DataGrid.MouseLeftButtonDown +=
語法訂閱DataGrid.MouseLeftButtonDown,當我點擊我的事件處理函數不是叫DataGrid中的行。如果我點擊標題,則會引發該事件。
如果我在父用戶控件水平訂閱同一事件,該事件處理函數調用成功,你會期望基於Silverlight RoutedEvents但我必須檢測是否發生在DataGrid上或其他地方的點擊。
如果我使用UIElement.AddHandler語法訂閱事件,如下所示,那麼它將按照預期的方式基於disposeEventsToo:true參數進行工作。
dataGrid.AddHandler(UIElement.MouseLeftButtonDownEvent,
new MouseButtonEventHandler(dataGrid_MouseLeftButtonDown)
, handledEventsToo: true);
看來,DataGrid的實施標誌着這些事件作爲孩子UI元素的一個處理,防止事件冒泡,默認情況下,這是不是我所期待開始。有了更多的想法,我可以看到,點擊行爲驅動各種事物(選擇項目,編輯字段等),所以也許實現是有意義的。