2011-10-08 7 views
2

나는 C# WPF DataGrid을가집니다. 관리자 모드에서 사용자는 DataGrid에서 행을 강조 표시하고 선택하고 "D"키를 눌러 PreviewKeyDown을 사용하여 행을 제거 할 수 있습니다. 운영자 모드에서는이 기능이 비활성화되고 사용자는 롤을 스크롤하고 읽을 수 있지만 삭제할 행은 강조 표시하거나 선택할 수 없습니다.WPF DataGrid 행에서 포커스 비활성화

enter image description here

나는 행이 highlined 및 제거 할 수 있습니다. 그러나이 기능을 비활성화하는 방법을 모르겠습니다. 내가 시도 :

  • IsReadOnly = false 여전히 하이 및 로우
  • IsHitTestVisible = false
  • 을 선택할 수있는 데이터 그리드하지 스크롤
  • Focusable = false 사용자를 렌더링 계속 표시 ..

어떻게?

답변

4

에서 선택을 비활성화하고 IsEnabled="False"DataGridRow에 설정하여 정렬, 스크롤링 등을 계속 유지할 수 있습니다.

이것은 대부분의 요소에 "회색으로 표시됨"/ 비활성화 된 모양이 나타나는 부작용이 있지만 TextBlocks에는 해당하지 않습니다.

<DataGrid ...> 
    <DataGrid.RowStyle> 
     <Style TargetType="DataGridRow"> 
      <Setter Property="IsEnabled" Value="False"/> 
     </Style> 
    </DataGrid.RowStyle> 
    <!-- ... --> 
</DataGrid>