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

C# 有没有办法确定哪些列在运行时是可编辑的?,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我有几个DataGrid都使用一个公共事件处理程序:DataGrid\u PreviewKeyDown 它的目的是在用户从最后一行的最后一个编辑单元格中进行制表时查找制表键事件并插入新行。栅格有多个列,其中只有一对是可编辑的 目前,我所拥有的如下所示。它使用grid.CurrentCell.Column.Header.ToString()=“myColumnHeaderName”。myColumnHeaderName仅适用于一个网格,因为其他网格没有该列 private void DataGri

我有几个
DataGrid
都使用一个公共事件处理程序:
DataGrid\u PreviewKeyDown

它的目的是在用户从最后一行的最后一个编辑单元格中进行制表时查找制表键事件并插入新行。栅格有多个列,其中只有一对是可编辑的

目前,我所拥有的如下所示。它使用
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 );
            }
        }
    }
}

每一列都有
IsReadOnly
属性,所以只需检查

if (!grid.CurrentCell.Column.IsReadOnly)