繁体   English   中英

如何使WPF数据网格单元格为某些行只读?

[英]How to make WPF datagrid cell ReadOnly for certain rows?

我使用WPF数据网格来编辑数据库表。 该表包含具有16列(属性)的几条记录。

我希望仅当选定记录的某一列具有特定值时用户尝试对其进行编辑的情况下,才能使该列为只读(换句话说,对于某些记录,禁用该特定列的编辑)。

我当时想绑定到列IsReadOnly属性,但是我不知道如何将需要验证的列(或至少当前行)作为转换器参数传递。

有人知道如何执行此操作吗?

我在这里找到了解决方案。 使用DataGrid.BeginningEdit事件有条件地检查单元格是否可编辑,然后在事件args上设置Cancel属性(如果不是)。

有条件地使WPF DataGridCell只读

我不知道这是否是最好的解决方案,但是它有效。

我建议在设置DataGridItemsSource的同时使特定的DataColumn Readonly。 考虑以下示例:

        DataTable tab = new DataTable();
        DataColumn col = tab.Columns.Add("a");
        // data added code
        foreach (DataColumn col in tab.Columns)
        foreach (DataRow r in tab.Rows)
        {
                if (r[col].Equals("..."))
                {
                    col.ReadOnly = true;
                    break;
                }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM