如何在只读数据表中使一列可编辑?

31 浏览
0 Comments

如何在只读数据表中使一列可编辑?

如何使只读数据网格中的一列可编辑?

HorizontalAlignment="Left" VerticalAlignment="Bottom"

Style="{DynamicResource StyleDatagrid}"

IsReadOnly="true">

0
0 Comments

问题的原因是当DataGrid绑定到只读视图时(一种使用IEnumerable生成的视图),无法将其属性IsReadOnly设置为"false",因为WPF不支持这样做。解决方法是将可编辑的列转换为DataGridTemplateColumn。例如,如果有一个像这样的复选框样式列:


要使其可编辑/可更改,可以将其替换为以下内容:


    
        
            
        
    

对于这样的列,您将获得一键更改行为的奖励(参考:https://stackoverflow.com/a/7270548/536172)。

0
0 Comments

问题的出现原因:用户希望在DataGrid中的某一列中允许编辑,但同时希望其他列是只读的。

解决方法:

1. 在DataGrid上设置AutoGenerateColumns="False",然后设置除了需要编辑的列外的其他列的IsReadOnly="True",需要编辑的列的IsReadOnly="False"。

2. 使用AutoGenerateColumns="True"(这是默认值,所以可以直接从XAML中删除这个属性),然后在ViewModel中将除了需要编辑的列外的其他属性的setter设置为private。

下面是选项1的示例代码:


    
        
        
        
        
        
        
    

0