如何将光标聚焦在 WPF 中数据网格中的当前单元格中



我正在数据网格中的单元格编辑事件中进行验证。 一旦消息如果我在消息框中单击"确定",则显示在消息框中。数据网格将移动到上一行。我希望焦点在当前验证行中。

我尝试了这段代码,但它不起作用。

int index = attendancegrid .SelectedIndex;
 attendancegrid .SelectedItem = attendancegrid .Items[index];
 attendancegrid .ScrollIntoView(attendancegrid .Items[index]); 

如果有人知道如何关注当前验证行,请帮助我处理一些代码 ex

每当您显示消息框并单击"确定"时,您都会失去主窗口的焦点。尽管正在保存逻辑焦点,因此当您返回到 MainWindow 时,您会看到逻辑焦点,当单击回范围内时,该焦点可以转换为键焦点。

要了解更多信息,请查看此链接。

http://msdn.microsoft.com/en-us/library/aa969768.aspx

如果您希望使用逻辑焦点并让 wpf 为您完成这项工作,请阅读以下内容:

http://msdn.microsoft.com/en-us/library/System.Windows.Input.FocusManager(v=vs.110).aspx

现在回答你的问题。我会通过使用FocusManager.FocusedElement来解决这个问题。只需在错误模板中设置该属性即可。

另一种方法是订阅 Validation.Error 事件并强制 Keyboard.Focus 方法将对象发送方聚焦在事件处理程序中。

http://msdn.microsoft.com/en-us/library/system.windows.controls.validation.error.aspx

最新更新