我目前正在使用 DataGrid 建立一个 WPF 窗口来保存一个表。绑定和更新工作正常,我也很鄙视样式,但在选择时遇到了麻烦。这是先决条件:
- 表是只读的
- 整行选择
这是我的表格的源代码:(是的,我知道我确实设置了 3 次选择颜色,一次用于 DataGrid,一次用于行,一次用于单元格。我认为其中一个可能会有所帮助,但事实并非如此案子。)
<DataGrid x:Name="dgv" SelectionMode="Single" SelectionUnit="FullRow" AutoGenerateColumns="False" Grid.Column="0" Grid.RowSpan="3" Margin="8" RowHeight="32" GridLinesVisibility="Horizontal" HeadersVisibility="Column" HorizontalScrollBarVisibility="Hidden"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
CanUserSortColumns="True"
IsReadOnly="True"
LoadingRow="dgv_LoadingRow"
>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"></SolidColorBrush>
</Style.Resources>
<Setter Property="VerticalAlignment" Value="center"></Setter>
<Setter Property="Padding" Value="4"></Setter>
<Setter Property="Margin" Value="4"></Setter>
</Style>
</DataGrid.CellStyle>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"></SolidColorBrush>
</Style.Resources>
</Style>
</DataGrid.RowStyle>
<DataGrid.Style>
<Style TargetType="DataGrid">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"></SolidColorBrush>
</Style.Resources>
</Style>
</DataGrid.Style>
然后它继续 Column- 和 RowDefinitions ...
我遇到以下问题:
- 只有单元格被选中,而不是整行。单元格中的边距使它看起来很奇怪(见截图)
- 当我单击单元格的边距(屏幕截图中未以红色呈现的区域)时,该行没有选择 - 使得选择行非常不直观......
- 我单击以选择行的单元格仍然被高亮显示(注意所选行中“Peter Müller”周围的黑色边框)
这是结果的屏幕截图: