最简单的方法可能是处理
PreviewKeyDown
编辑事件
TextBox
并以编程方式提交编辑并执行其他操作:
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>
您当然可以创建自定义
GridViewDataColumn
实现此行为的类:
public class CustomColumn : GridViewDataColumn
{
public override FrameworkElement CreateCellEditElement(GridViewCell cell, object dataItem)
{
TextBox textBox = base.CreateCellEditElement(cell, dataItem) as TextBox;
textBox.PreviewKeyDown += (s, e) =>
{
if (e.Key == Key.Enter)
{
e.Handled = true;
DataControl.CommitEdit();
}
};
return textBox;
}
}
用法:
<telerik:RadGridView.Columns>
<local:CustomColumn DataMemberBinding="{Binding Name}" Header="Name" />
</telerik:RadGridView.Columns>