有没有办法确定哪些列在运行时可编辑?

时间:2013-09-19 19:37:53

标签: c# wpf wpfdatagrid

我有几个DataGrids全部使用公共事件处理程序:DataGrid_PreviewKeyDown

它的目的是查找tab键事件,并在用户选中最后一行的最后一个编辑单元格时插入一个新行。网格有几列,其中只有一列是可编辑的。

目前,我所拥有的内容如下所示。它使用grid.CurrentCell.Column.Header.ToString() == "myColumnHeaderName"。 myColumnHeaderName仅适用于一个网格,因为其他网格没有该列。

private void DataGrid_PreviewKeyDown( object sender, KeyEventArgs e )
{
    if ( e.Key == Key.Tab && Keyboard.Modifiers == ModifierKeys.None )
    {
        DataGrid grid = sender as DataGrid;
        if ( grid.SelectedIndex == grid.Items.Count - 1 ) // last row
        {
            if ( grid.CurrentCell.Column.Header.ToString() == "myColumnName" )
            {
                grid.CommitEdit();
                AppendToGrid( grid );
            }
        }
    }
}

1 个答案:

答案 0 :(得分:3)

每列都有IsReadOnly属性,所以请检查

if (!grid.CurrentCell.Column.IsReadOnly)