WPF DataGrid:使单元格只读

Posted

技术标签:

【中文标题】WPF DataGrid:使单元格只读【英文标题】:WPF DataGrid: Make cells readonly 【发布时间】:2011-01-30 23:28:26 【问题描述】:

我使用以下DataGrid

<DataGrid Grid.Row="1" Grid.Column="1" Name="Grid" ItemsSource="Binding"  AutoGenerateColumns="False" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="Name" Width="100" Binding="Binding Path=Name"></DataGridTextColumn>
                <DataGridTextColumn Header="OldValue" Width="100" Binding="Binding Path=OldValue"></DataGridTextColumn>
                <DataGridTextColumn Header="NewValue" Width="100*" Binding="Binding Path=NewValue"></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>

如何将单元格设为只读?

【问题讨论】:

【参考方案1】:

将 DataGrid 的 IsReadOnly 属性设置为 true。

<DataGrid Grid.Row="1" Grid.Column="1" Name="Grid" ItemsSource="Binding"
    IsReadOnly="True" AutoGenerateColumns="False" >

【讨论】:

【参考方案2】:

如果您想将某列的单元格设为只读,您可以为该列设置 IsReadOnly:

<DataGridTextColumn Header="Name" IsReadOnly="True" Width="100" Binding="Binding Path=Name"></DataGridTextColumn>

【讨论】:

+1 接受的答案是我所需要的,但我相信这个答案会对其他人有所帮助。【参考方案3】:
    <DataGrid x:Name="dgUsers" 
    ...
    $dgUsers = $Form.FindName("dgUsers")
    ....
    # Make all columns cells readonly
    $dgUsers.Columns | ForEach-Object  $_.IsReadOnly = $True 

【讨论】:

以上是关于WPF DataGrid:使单元格只读的主要内容,如果未能解决你的问题,请参考以下文章

在某些条件下使用 ComboBox 只读创建一个单元格 WPF DataGrid

如何让 WPF DataGrid 单元格右对齐而不使新行上的可选区域变小?

如何在datagrid中使一行的单元格不可点击

wpf datagrid 单元格如何默认单击一次点中

c# wpf datagrid 模板列修改某个单元格,更新所选行另一个单元格的值,如何做到呢?

DataGrid中的WPF样式单元格和行