我目前正在建立一个使用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>
然后它继续列 - 和RowDefinitions ...
我遇到了以下问题:
- 只有细胞都被选择,而不是整条生产线。单元格中的边距使其看起来很怪异(请参阅屏幕截图)
- 当单击单元格的边距(屏幕截图中未以红色呈现的区域)时,行不会选中 - 使选择行相当直观...
- ,我一下就选择该行仍然得到hihglighted细胞(注意黑色边框“彼得·穆勒”选择行)
这里的结果的截图:
嗯,我想因为没有人提出任何不同的东西,我将不得不使用编程方法并对selectionChanged事件做出反应...... – Eisenhorn 2013-03-18 18:05:02