2013-04-30 8 views
0

은 내가 예 방법 OnKeyDownHandler 있습니다. 이제 Delete-Key 키를 눌러 항목을 삭제하고 항목을 선택하려고합니다.KeyDownHandler-이벤트 데이터 그리드 및 목록 상자

이제 우리는 다음과 같은 상황을 통해 이동 :

내가 그것을 내 listBox과 초점에 SelectedItem 있습니다. Deletey-Key을 누르면 OnKeyDownHandler-Event이 트리거됩니다.

dataGridSelectedItem이 있고 그 중점을두고 있습니다. Delete-Key을 누르면 OnkeyDownHandler-Event이 실행되지 않습니다.

Paste-Key과 같은 다른 키를 누르면 OnKeyDownHandler-Event가 트리거됩니다.

dataGridDelete-Key을 누르면 이벤트가 호출되지 않습니다. 왜 그런가요? 나는 그것을 설명 할 수 없다.


편집 : XAML 코드

<DataGrid KeyDown="OnKeyDownHandler" /> 

<ListBox KeyDown="OnKeyDownHandler" /> 
+0

이벤트가 연결된 위치에서 XAML의 모양이 어떻게됩니까? – Thelonias

답변

2

KeyDown 경우에 현재 셀에 의해 처리되고이 필요합니다. DataGridView 컨트롤이 코드 숨김이 아닌 이벤트를 처리하고 있습니다. DataGridKeyDown 대신 PreviewKeyDown 이벤트를 사용해 볼 수 있습니다.

+0

작동 해 주셔서 감사합니다! –

+0

다행이 당신을 위해 일했습니다. 질문에 대한 답변이 있으면 해결 된 것으로 표시하십시오. – Thelonias

+0

예 마킹을 위해 2 분을 기다려야하고 키보드에서 벗어났습니다. :) –

0

난 당신이 OnKeyDownHandler 목록 상자에 부착되지 않은 데이터 그리드에있다 같아요. 당신은 당신의 DataGrid에 당신의 dataGrid.OnKeyDown += OnKeyDownHandler; 같은 Window_Loaded 또는 PAGE_LOADED 또는 XAML

<DataGrid ... OnKeyDown="OnKeyDownHandler" ... ></DataGrid> 
+0

내 질문에 XAML 코드를 편집했습니다. Paste-Key와 같은 다른 키를 사용하는 이유는 무엇입니까? –