目前使用的wpf的datagrid还存在两个问题没有搞定,一个是datagrid的选中事件,另一个则是鼠标滚轮滚动时,datagrid的行间距发生变化。
第一个问题的解决方案:设置datagrid的属性SelectionUnit="Cell",这样每次选中就只是一个单元格,需要设置
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers >
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Transparent"></Setter>
<Setter Property="BorderThickness" Value="0"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
这样就可以将选中事件去掉,其实现在反映到可以使用RowStyle的Trigger来设置行的选中事件。
而针对第二个问题已经将解决方案找到,需要修改mousewheel事件,要么重写对应的方法,要么禁掉这个事件;禁掉这个事件无法达到项目的要求,而重写需要查看源码,所以决定保留第二个问题不处理。