我在WPF中的DataGrid看起来如下:
上面的DataGrid行代表以下示例模型:
class MyModel
{
public string Value { get; set; }
public string Message { get; set; }
}
我希望在编辑文本框后按Enter键时阻止自动选择更改,因此在编辑第一行文本框内容时,不会移动到第二行,右边的标签将在以下条件之后更新:如果文本仅包含数字字符,则文本正常,否则出错。
我尝试通过使用我的视图KeyPressed,PreviewKeyDown和LostFocus事件后面的代码来执行此操作,但它不起作用:(
if (e.Key == Key.Enter || e.Key == Key.Return)
{
var dataGrid = (DataGrid) sender;
if (dataGrid != null)
{
var row = dataGrid.ItemContainerGenerator.ContainerFromItem(dataGrid.SelectedItem) as DataGridRow;
base.OnPreviewKeyDown(e);
//e.Handled = true;
if (row != null)
dataGrid.SelectedItem = row.Item;
}
else
base.OnPreviewKeyDown(e);
}
答案 0 :(得分:2)
尝试此更改。
//base.OnPreviewKeyDown(e);
e.Handled = true;