如何确定wpf datagrid单元格是否处于编辑模式?

时间:2011-02-02 20:49:57

标签: c# .net wpf mvvm

有两种情况:

  1. 您选择一行并按删除键删除行。

  2. 您选择一个单元格,当其文本突出显示时,按删除键删除文本。

  3. 我如何区分这两者?在这两种情况下我都会捕获PreviewKeyPress并且Key是Delete Key,所选行是相同的。

3 个答案:

答案 0 :(得分:8)

要识别按键来源,请在e.OriginalSource中捕获PreviewKeyPress(..)并检查对DataGridRowDatagridCell的投射是否成功。

DataGrid具有IsReadOnly属性。

答案 1 :(得分:0)

也许可以查看选定的DataGridCell IsEditing property?我假设,如果您选择了整行,则会选择 no 单元格,或者IsEditing在所选单元格上将为false(因为我不相信您可以在多个时编辑单元格被选中)。

如果在选择一行时,它自动选择第一列中的单元格并将其置于编辑模式,则此方法可能不起作用......但此刻我无法测试。

答案 2 :(得分:0)

在DataGrid的OnPreviewKeyDown中:

if ((this.CurrentItem as DataRowView).IsEdit == false && ...)
{
    // the row is in view mode
}