데이터 격자에 DataGridComboBoxColumn
이있는 DataGrid가 있습니다.WPF DataGridComboBoxColumn 키 편집 편집
사용자가 입력하는 것으로 편집 모드로 들어갈 수 있기를 바랍니다.
DataGridTextColumn
의 기본 동작이며이 열 유형에 대해 편집을 사용하려면 F2 키를 눌러야한다는 점이 마음에 들지 않습니다.
F2를 누르지 않아도 DataGridComboBoxColumn
편집 모드로 들어가게하려면 어떻게해야합니까? Key Press에서 이상적이지만, 초점이 맞으면 편집 모드로 전환해도 괜찮습니다. DataGrid를의 기본 기능을 다시 가져 허용 대답에
솔루션 수정 :
void Cell_PreviewKeyDown(object sender, KeyEventArgs e)
{
if(e.Key == Key.Enter || e.Key == Key.Tab)
{
dgBins.CommitEdit();
dgBins.SelectedIndex += 1;
}else if(e.Key.ToString().Length == 1
|| (e.Key.ToString().StartsWith("D") && e.Key.ToString().Length == 2)
|| e.Key.ToString().StartsWith("NumPad")
|| e.Key == Key.Delete
|| e.Key == Key.Back)
{
if (e.OriginalSource is DataGridCell)
{
DataGridCell cell = (sender as DataGridCell);
Control elem = FindChild<Control>(cell, null);
elem.Focus();
}
}
}
거의 작동합니다. 입력, 탈출 및 탭 키를 무시하도록 수정해야했습니다. 또한 이제 사용자는 enter를 두 번 눌러 다음 행으로 이동해야합니다. 중지 방법을 찾으려고 시도합니다. – MrZander
@MrZander 그것은 별도의 질문에 대한 후보입니다. 그래서 u에게 별도로 요청하십시오. 그리고이 대답이 현재의 질문에 적절하게 표시되어 있다면. – AnjumSKhan
물론 이것은 이것이 편집 모드로 들어가게하지만, 데이터 그릿의 다른 모든 기능을 거의 손상시킵니다. 이상적이지 않습니다. 여하튼 문제를 수정 한 수정 사항으로 질문을 업데이트했습니다. – MrZander