WPF RadGridView-如果输入键(但值未更改)的行为类似于转义键
在WPF RadGridView-如果输入键(但值未更改)的行为类似于转义键,wpf,telerik,telerik-grid,radgridview,Wpf,Telerik,Telerik Grid,Radgridview,在RadGridView中编辑单元格时,escape键的正常行为是离开编辑模式,但将焦点保留在同一单元格上;如果按enter键,则提交编辑并将焦点前进到下一个可编辑单元格 我的老板想让我修改这个行为,这样,如果按下enter键,但单元格的值没有改变,就好像它是escape键一样。虽然我已经能够取消提交,但焦点仍然前进到下一个可编辑单元格,而这不是他想要的 实现我们期望的目标的最佳方式是什么?提前感谢您的帮助。最简单的方法可能是处理编辑文本框的PreviewKeyDown事件,并以编程方式提交编辑
RadGridView
中编辑单元格时,escape键的正常行为是离开编辑模式,但将焦点保留在同一单元格上;如果按enter键,则提交编辑并将焦点前进到下一个可编辑单元格
我的老板想让我修改这个行为,这样,如果按下enter键,但单元格的值没有改变,就好像它是escape键一样。虽然我已经能够取消提交,但焦点仍然前进到下一个可编辑单元格,而这不是他想要的
实现我们期望的目标的最佳方式是什么?提前感谢您的帮助。最简单的方法可能是处理编辑
文本框的PreviewKeyDown
事件,并以编程方式提交编辑并执行其他操作:
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
e.Handled = true;
outerGrid.CommitEdit();
}
}
XAML:
<telerik:GridViewDataColumn>
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<TextBox Text="{Binding Name}" PreviewKeyDown="TextBox_PreviewKeyDown" />
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
<telerik:RadGridView.Columns>
<local:CustomColumn DataMemberBinding="{Binding Name}" Header="Name" />
</telerik:RadGridView.Columns>
用法:
<telerik:GridViewDataColumn>
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<TextBox Text="{Binding Name}" PreviewKeyDown="TextBox_PreviewKeyDown" />
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
<telerik:RadGridView.Columns>
<local:CustomColumn DataMemberBinding="{Binding Name}" Header="Name" />
</telerik:RadGridView.Columns>
提交不需要的编辑似乎很违反直觉,但这就是关键所在。多谢。