禁用DataGrid中的特定单元格编辑

我想知道是否可以在DataGrid中禁用特定的单元格编辑,而无需在Silverlight 4中禁用整个列的编辑.我可以将特定的单元格对象作为FrameworkElement获得,但它不包含属性IsReadOnly或IsEnabled.
您可能会问:为什么我需要那?好吧,我的应用程序需要根据其他单元格内容来禁用特定行中的单元格.每行都以这种方式分别检查.
如果您对如何实现这种不正常的行为有任何想法,请写信;)

解决方法:

如果您具有要禁用的一个或多个单元格的行,列索引:

int r = 2, c = 4;

然后,您可以监听事件CellEnter和CellLeave并执行以下操作:

    private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
    {
        if (e.RowIndex == r)
        {
            if (e.ColumnIndex == c)
            {
                dataGridView1.Columns[e.ColumnIndex].ReadOnly = true;
            }
        }
    }

    private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
    {
        if (e.RowIndex == r)
        {
            if (e.ColumnIndex == c)
            {
                dataGridView1.Columns[e.ColumnIndex].ReadOnly = false;
            }
        }
    }

您仍然将整个列设置为“只读”,但是由于您在离开单元格后将其重置为原来的效果,因此看起来只对该单元格有效.

上一篇:C#.net从.bat文件的结果填充数据网格


下一篇:c#-在某些发辫状态下调整wpf控制大小时不希望的裁剪