2011-09-15 4 views
4

Silverlight 응용 프로그램에 DataGrid가 있습니다. 첫 번째 행을 클릭 한 다음 Enter 키를 누르면 선택 항목이 다음 행으로 이동합니다. 이 동작을 원하지 않습니다. Enter 키는이 화면에서 전혀 다른 용도로 사용됩니다.Silverlight DataGrid에서 Enter 키 처리 금지

이것이 편집 프레임 워크의 일부라는 것을 알고 있지만이 기능을 끄는 방법이 필요합니다. IsReadOnly True로 설정했는데 (비록 컨트롤이 기술적으로 읽기 전용이 아니어도) 효과가 없습니다.

DataGrid KeyDown 이벤트에 연결되었지만 Enter 키를 누를 때 호출되지 않았습니다. 그것은 다른 키에 대해 잘 작동합니다.

내가 곤혹 스럽다. 당신의 도움을 주셔서 감사합니다.

답변

4

네, 귀찮습니다.

아는 한, 유일한 옵션은 DataGrid에서 상속하는 컨트롤을 만들고 이벤트를베이스로 전달하기 전에 필요한 작업을 수행하는 것입니다.

public class NewDataGrid : DataGrid 
{  
    protected override void OnKeyDown(KeyEventArgs e)  
    {   
     if (e.Key == Key.Enter)   
     { 
      //do what is needed here    
      e.Handled = true;   
     }   
     base.OnKeyDown(e);  
    } 
} 
관련 문제