我知道你可以将整个DataGrid或整列设置为只读(IsReadOnly = true)。然而,在单元格级别,此属性是只读的。但我确实需要这种细粒度控制。以前DataGrid是公共领域的源代码,有一篇关于通过更改源代码向行添加IsReadOnly的博客,但现在我没有DataGrid的源代码。有什么解决方法吗?
使单元格被禁用(IsEnabled=false)几乎符合我的需求。但问题是,你甚至不能点击被禁用的单元格来选择行(我采用了完整的行选择模式)。
编辑: 由于没有人回答这个问题,所以我想这并不是一个简单的修复。这里有一个可能的解决方法:使单元格不可编辑。唯一的问题是,点击单元格不会选择该行。我刚注意到,当点击禁用的单元格时,DataGrid的MouseDown或MouseUp事件仍然会触发。在这个事件处理程序中,如果我能找出它单击的行,我就可以以编程方式选择行。然而,我无法从中找到底层行。有人可以给我一些提示吗?