2012-02-09 4 views
0

DataGrid에서 두 번 클릭하고 정렬하는 데 문제가 있습니다.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는 헤더 텍스트 또는 헤더 내부에 다른 원소를 함유 할 수있다 TextBlock 상기 routed event이 발사되는 첫 번째 목적이다. 반면에 sender은 이벤트 핸들러가 연결된 객체입니다.

+0

고맙습니다. 이런 식으로 결정하지만 내 셀에는 DataGridCheckBoxColumn이 있습니다. DataGrid 테두리를 두 번 클릭하면 TextBlock이 아닌 Border를 캡처합니다. DataGridCheckBoxColumn으로 셀을 두 번 클릭하면 Border도 캡처됩니다. 이 문제를 어떻게 해결할 수 있습니까? – Aleksey

+0

@Aleksey : 당신이하려고하는 것을 내가 얻지 못해서 모르겠습니다. 또한 당신은 단지 * 왜 * 그것이 내가 생각했던 대답을 예상했던 것처럼 행동하지 않는지에 대해 질문했습니다. –

관련 문제