允许在WPF Datagrid中禁用单元格的行选择

时间:2017-05-29 14:51:33

标签: c# wpf wpfdatagrid

我有一个禁用了某些列的WPF Datagrid(通过将IsEnabled = false样式应用于DataGridCell),因此单元格显示为灰色且不允许编辑。

但是如果用户点击禁用的单元格,我需要允许完整的行选择。 这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以处理PreviewMouseLeftButtonDown的{​​{1}}事件:

DataGridRow
<DataGrid x:Name="dg" SelectionUnit="FullRow">
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <EventSetter Event="PreviewMouseLeftButtonDown" Handler="dg_PreviewMouseLeftButtonDown" />
        </Style>
    </DataGrid.RowStyle>
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding}" />
        <DataGridTextColumn Binding="{Binding}">
            <DataGridTextColumn.CellStyle>
                <Style TargetType="DataGridCell">
                    <Setter Property="IsEnabled" Value="False" />
                </Style>
            </DataGridTextColumn.CellStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>