如何为某些行创建WPF datagrid单元格ReadOnly?

时间:2017-02-17 16:34:43

标签: c# wpf mvvm binding datagrid

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

如果用户在所选记录的其中一列具有特定值时尝试编辑它(换句话说,禁用某些记录的特定列的编辑),我想只读一列。

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

有人知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

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

Conditionally making readonly to WPF DataGridCell

我不知道这是否是最佳解决方案,但它确实有效。

答案 1 :(得分:0)

我建议在设置DataColumn的{​​{1}}时设置特定ItemsSource只读。请考虑以下示例:

DataGrid