WPF:如何将事件应用于数据网格可编辑单元格(TextBlock 或 TextBox)?
我有一个 WPF Datagrid,其整数数据类型列是可编辑的,因此我想添加一个按键事件,以便当用户开始编辑单元格并按向上箭头键时,该单元格中的值会增加 1,并且如果按下向下箭头键它减少 1。
我想我必须做这样的事情,但是在哪里以及如何做?
DatagridCell.KeyPress += new ....... (....);
I have a WPF Datagrid and its integer datatype columns are editable and hence i want to add a keypress event so that when user starts to edit a cell and presses up arrow key the value in that cell increments by 1 and if down arrow key is presses it decrements by 1.
I think i have to do something like this but where and how?
DatagridCell.KeyPress += new ....... (....);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 Xaml => 中在网格的 PreviewKeyDown 事件上挂接一个处理程序。
在代码中,您也可以使用“名称”访问网格,或者使用窗口中的 VisualTreeHelper 找到它,或者......然后在其上挂接一个事件处理程序。
然后,您可以查看是否正在编辑此网格中的单元格,通过查看网格 ( GridName.SelectedCells ) 或使用事件参数 ( e.OriginalSource ) 查找已编辑的单元格并采取相应操作。
in the Xaml => hook a handler on the PreviewKeyDown event of your Grid.
And in the code as well you might either access your Grid with its 'Name' or find it with the VisualTreeHelper in your window, or.... and then hook an event handler on it.
You can then see if you are editing a cell in this grid, find wich one is edited looking into the grid ( GridName.SelectedCells ) or using the event parameters ( e.OriginalSource ) and act accordingly.