當我在WPF DataGrid中執行WPF MouseDoubleClick事件。當我雙擊一行時,應該執行對數據庫的查詢。只有DataGrid行被點擊
這DataGrid中具有水平和垂直滾動條,我注意到,當我趕緊點擊滾動條之一的箭頭按鈕,這將查詢發送到數據庫。
的問題是,我使用DataGrid的MouseDoubleClick
事件,所以滾動條所屬的DataGrid中,當他們雙擊,引發此事件。
有什麼辦法,只有當我在DataGrid上的一排雙擊,而不是當我在滾動條的一部分,雙擊執行雙擊事件?
我認爲這是行不通的。 DataGrid中有許多ContentPresenter(不僅用於行),並且您無法確定ContentPresenter是否是e.OriginalSource的直接父級。 – LPL 2012-07-27 09:18:12
我以前用過這種方法。問題的關鍵是,如果e.OriginalSource的直接父是一個ContentPresenter你可以假設用戶點擊某行或該行的列的一個對象,因此你可以得到選定行。如果它是其他東西,比如邊界或網格,就忽略它。你有任何可能出錯的例子嗎? – Eirik 2012-07-27 10:07:14
我還沒試過。這只是我的想法。我的意思是一個ContentPresenter不是一個行的跡象。這真的不會觸發ColumnHeaders和ScrollBars?那麼如果Template不是默認的呢? – LPL 2012-07-27 10:23:35