2012-02-09 46 views
0

我在數據網格中雙擊和排序時遇到了一些問題。DataGrid中的雙擊和排序之間的衝突

當我用啓用的行雙擊標題時,我的排序被打破了。我試圖過濾雙擊,但我失敗了,這是一個代碼,但dependencyObject並不總是有名稱「DataGridHeaderBorder」,我不知道爲什麼?

private void dataGrid1_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
{ 
    DependencyObject dependencyObject = (DependencyObject)e.OriginalSource; 

    if (dependencyObject.DependencyObjectType.Name != "DataGridHeaderBorder") 
    { 
     Edit_Task_MenuItem(sender, (RoutedEventArgs)e); 
    } 
} 

回答

1

e.OriginalSource是在其上routed event燒製的非常第一個目的,它可以是包含標題文本或報頭內的任何其它元件上TextBlock。另一方面,sender將是附加事件處理程序的對象。

+0

謝謝,我決定這樣做,但我的單元格中有一個DataGridCheckBoxColumn。當我在datagrid邊框上單擊雙擊時,我捕捉Border而不是TextBlock。當我用DataGridCheckBoxColumn單擊單元格時,我也捕獲Border。我該如何解決這個問題? – Aleksey 2012-02-09 12:27:05

+0

@Aleksey:我不太明白你想做什麼,所以我不知道。你也只問了*爲什麼*它的行爲不像你期望的那樣我回答我想...... – 2012-02-09 18:13:04