我有一个Datagrid,我附加了一个PreviewKeyDown事件。
private void DataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
DeleteRow();
e.Handled = true;
}
}
我的问题是,每当我编辑一个单元格并尝试删除一个字母或数字时,DeleteRow方法就会被调用。
有什么方法可以让我知道是否正在编辑单元格以避免调用方法?
感谢。
答案 0 :(得分:1)
在阅读Rick's和Nadia的评论后,我应用了以下解决方案:
private void UnitDataGrid_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
{
_isEditing = true;
}
protected override void OnCellEditEnding(DataGridCellEditEndingEventArgs e)
{
_isEditing = false;
}
通过创建这两个事件和一个私有属性(a.k.a一个标志),我可以编写一个条件来仅在单元格处于编辑模式时调用方法。