-1
我有WPF Datagrid,禁用了一些列(通过将IsEnabled = false样式应用于DataGridCell),所以单元格呈灰色并且不允许编辑。允许行选择禁用WPF数据格中的单元格
但我需要允许全行选择,如果用户点击禁用的单元格。 这可能吗?
我有WPF Datagrid,禁用了一些列(通过将IsEnabled = false样式应用于DataGridCell),所以单元格呈灰色并且不允许编辑。允许行选择禁用WPF数据格中的单元格
但我需要允许全行选择,如果用户点击禁用的单元格。 这可能吗?
你可以处理PreviewMouseLeftButtonDown
事件的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>
private void dg_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DataGridRow row = sender as DataGridRow;
dg.SelectedItem = row.DataContext;
}
是的,这是可能的。 – Karolis
@ mm8:是的,完美的作品,谢谢。 –
@ karolis:是的,非常有用的答案确实... –