我有一个禁用了某些列的WPF Datagrid(通过将IsEnabled = false样式应用于DataGridCell),因此单元格显示为灰色且不允许编辑。
但是如果用户点击禁用的单元格,我需要允许完整的行选择。 这可能吗?
答案 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>