我有一个WPF数据网格,我想根据值不同的单元格颜色.我的xaml下面有代码
Style TargetType="DataGridCell"
Run Code Online (Sandbox Code Playgroud)
但是选择所有行而不是选择一个单元格?我错过了什么?
我仍然在操纵细胞背景,所以我问了一个新问题.
用户"HB"写道我可以在AutoGeneratingColumn事件期间实际设置单元格样式- 根据值更改DataGrid单元格颜色.问题是我不知道该怎么做.
我想要的:根据每个单元格的值
设置不同的背景颜色.如果值是null我也希望它不可点击(我猜可以聚焦).
我有/我想做什么:
private void mydatagrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
foreach (Cell cell in e.Column)
{
if (cell.Value < 1)
{
cell.Background = Color.Black;
cell.isFocusable = false;
}
else
{
cell.Background = Color.Pink;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这只是伪代码.在列自动生成期间是否可以这样做,如果是这样,我如何编辑我的代码以使其有效?
我读到了有关值转换器的内容,但我想知道它是否可以通过编程方式进行,而无需编写XAML.
请理解我还是C#/ WPF/DataGrid的初学者.
我用了我接受的答案.把它放入
<Window.Resources>
<local:ValueColorConverter x:Key="colorConverter"/>
<Style x:Key="DataGridCellStyle1" TargetType="{x:Type DataGridCell}">
<Setter Property="Padding" Value="5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True"> …Run Code Online (Sandbox Code Playgroud)