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

标签 c# silverlight 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# - 禁用 DataGrid 中的特定单元格编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9129336/

相关文章:

c# - 在没有类型先验知识的情况下在 C# 中解码 JSON 对象

silverlight - 通过反射获取 mscorlib 2.0.5.0(又名 Silverlight mscorlib)中的类型?

c# - 使用 protobuf-net 发布反序列化 (protocolBuffer) 序列化数据

c# - RIA 域服务应包含多少个实体?

c# - silverlight 3 中的路由事件?

c# - 如何从 ViewModel(MVVM) 调用 UI Controls 方法?

silverlight - 如何在代码中将 Silverlight 3 DataGridCell 置于编辑模式?

c# - 如何在堆栈面板中滚动数据网格?

c# - WPF DataGrid 移动到最后选定的行而不突出显示最近单击的行

c# - 隐藏 ProgressChanged 事件