web-dev-qa-db-fra.com

WPF DataGrid: Créer des cellules en lecture seule

J'utilise le DataGrid suivant

<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>

Comment puis-je rendre les cellules en lecture seule?

48
crauscher

Définissez la propriété IsReadOnly de DataGrid sur true.

<DataGrid Grid.Row="1" Grid.Column="1" Name="Grid" ItemsSource="{Binding}"
    IsReadOnly="True" AutoGenerateColumns="False" >
87
Taylor Leese

Si vous voulez créer les cellules d'une certaine colonne en lecture seule, vous pouvez définir IsReadOnly pour cette colonne:

<DataGridTextColumn Header="Name" IsReadOnly="True" Width="100" Binding="{Binding Path=Name}"></DataGridTextColumn>
0
Parisa
    <DataGrid x:Name="dgUsers" 
    ...
    $dgUsers = $Form.FindName("dgUsers")
    ....
    # Make all columns cells readonly
    $dgUsers.Columns | ForEach-Object { $_.IsReadOnly = $True }
0
Tony Orphanson