我已覆盖DataGrid
。下面是我的代码和XAML。如何在选择单元格时设置样式以更改DataGridCell
背景颜色?
<vw:DataGridExt
Grid.Row="1"
AlternatingRowBackground="LightGray"
ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Value,Mode=OneWay, IsAsync=True}"
Background="White"
AutoGenerateColumns="True"
IsReadOnly="True"
CanUserResizeRows="False"
ClipboardCopyMode="IncludeHeader"
CanUserSortColumns="True"
CanUserAddRows="False"
SelectionMode="Extended"/>
public class DataGridExt : DataGrid
{
public DataGridExt()
{
this.AutoGeneratedColumns += new EventHandler(DataGrid_AutoGeneratedColumns);
}
}
答案 0 :(得分:0)
您必须为DataGridCell提供样式
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" >
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="BorderBrush" Value="Black" />
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Gray"/>
</Trigger>
</Style.Triggers>
</Style>
并设置
SelectionUnit="Cell" for your DataGrid.
希望它有所帮助。