WPF DataGrid - 如何用复选框选择替换蓝色高亮显示?

时间:2016-02-29 21:32:20

标签: wpf xaml wpfdatagrid

默认情况下,当您在WPF中的DataGrid上选择一行时,该行上会显示蓝色突出显示。

对于我的DataGrid,我有一个列,每行都有一个复选框。选择行时,应检查该框,并且不会显示分散注意力的蓝色突出显示。

任何人都知道这样做的方法吗? 我试过这段代码,但我不知道如何实现我的复选框列

Output:
A      B     C
'..' '..' 'e/f'

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用DataGridCheckBoxColumn并覆盖下面的选择样式,

    <DataGrid Name="Grid" AutoGenerateColumns="False">            
        <DataGrid.Resources>
            <ResourceDictionary>
                <Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}">
                    <Setter Property="Foreground" Value="Black" />
                    <Setter Property="Background" Value="{x:Null}" />
                    <Setter Property="BorderBrush" Value="{x:Null}" />                       
                </Style>
            </ResourceDictionary>
        </DataGrid.Resources>            

        <DataGrid.Columns>
            <DataGridCheckBoxColumn Header="Bool property" Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}"></DataGridCheckBoxColumn>                
            <DataGridTextColumn Header="Text Property" Binding="{Binding .}"/>
        </DataGrid.Columns>            
    </DataGrid>