用户单击数据网格行时,不要突出显示所选单元格

时间:2010-08-24 15:54:35

标签: c# .net wpf datagrid

我有一个像这样设置的DataGrid:

<DataGrid 
    AutoGenerateColumns="True"
    GridLinesVisibility="Horizontal"
    IsReadOnly="True" 
    ItemsSource="{Binding Documents}" 
    SelectionMode="Single"                  
    SelectionUnit="FullRow"
    />

有人可以通过不突出显示单击的单元格来指示我正确的方向,使UI看起来好像选择了整行一样吗?

Data grid with cell selected

2 个答案:

答案 0 :(得分:0)

你会想要细胞样式的精子。我认为默认的单元格样式会检查IsSelected,如果是边框,则会用黑色笔刷着色。

因为您使用的是AutoGenerateColumns,所以您可能需要在后面的代码中生成列后设置列的样式。

我猜测如果你创建一个样式,检查IsSelected并将borderbrush设置为透明,设置datagrid列的样式(ElementStyle + ElementEditingStyle)然后你应该设置。我是从头脑中写出来的,但这是我想的总体方向。

答案 1 :(得分:0)

感谢Marko指出我正确的方向。以下是我更改数据网格的方式,使其看起来不像任何单元格。相反,现在似乎整行是选择的。我选择将边框的背景设置为当前单元格背景,这样我也不必设置边框粗细。

<DataGrid ...>
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell" >
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter
                        Property="BorderBrush" 
                        Value="{Binding RelativeSource={RelativeSource Self}, Path=Background}"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGrid.CellStyle>
</DataGrid>