WPFToolKit DataGrid
을 사용하여 데이터를 표시하고 있습니다. 내 사용의 경우Wpf DataGrid의 포커스 문제
- 사용자가 셀을 클릭하고 값을 입력 (I 트랩을 이벤트를하고
TextBox
에 포커스를 설정) - 프레스는 다음에
- 값이 최선을 다하고 있습니다
- 초점 이동을 입력 셀
사용자가 셀을 클릭하지 않는 한 (DataGridCell
)에 값을 입력 할 수 없습니다. TextBox
은 다양한 컨트롤 (예 : NumericUpDown
, Calendar
등)의 일부일 수 있습니다.
이 문제가 엑셀과 유사하지만 다양한 다른 래퍼 사용자 컨트롤로서 기본이 TextBox
에 포커스를 이동 할 수 있습니다 아니다 거기 DataGridCell
(DataGridCell
같은 것이 UpDown
컨트롤이 포함 MatrixCell
을 포함 MatrixCellContainer
을 포함)에
모든 포인터가 정말 도움이 될 것입니다.
업데이트 :
private void DataGridCell_Selected(object sender, RoutedEventArgs e)
{
Microsoft.Windows.Controls.DataGridCell dataGridCell =
sender as Microsoft.Windows.Controls.DataGridCell;
// ToDo: This is a very bad hack;
// should be replaced by some proper technique
if (dataGridCell != null)
{
NumericUpDownBase<int>[] IntUpDownControls =
dataGridCell.GetChildrenOfType<NumericUpDownBase<int>>();
if (IntUpDownControls.Count() != 0)
{
IntUpDownControls[0].Focus();
//Keyboard.Focus(IntUpDownControls[0]);
}
else
{
NumericUpDownBase<double>[] DblUpDownControls =
dataGridCell.GetChildrenOfType<NumericUpDownBase<Double>>();
if (DblUpDownControls.Count() != 0)
{
DblUpDownControls[0].Focus();
//Keyboard.Focus(DblUpDownControls[0]);
}
}
}
}
을하지만 이것을 달성하기 위해 더 나은 방법이 될 것입니다 알고
이 같은 DataGridCell_Selected
이벤트를 처리하여 내가 찾던 달성 할 수있다!
데이터 그리드의 그것의 기본 동작에 Enter 키에 초점을 이동 (나는 비록 확실하지 않다). DataGridCell_Selected 이벤트 처리기에서이 내용을 검사했으며 셀에 대해 IsFocused 및 IsKeyboardFocused가 모두 true로 설정됩니다. – akjoshi