相关疑难解决方法(0)

根据值更改DataGrid单元格颜色

我有一个WPF数据网格,我想根据值不同的单元格颜色.我的xaml下面有代码

Style TargetType="DataGridCell"
Run Code Online (Sandbox Code Playgroud)

但是选择所有行而不是选择一个单元格?我错过了什么?

c# wpf xaml datagrid colors

63
推荐指数
2
解决办法
14万
查看次数

如何在AutoGeneratingColumn事件期间根据其值设置数据网格单元格的背景?

我仍然在操纵细胞背景,所以我问了一个新问题.

用户"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的初学者.

解决方案part1:

我用了我接受的答案.把它放入

<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)

c# wpf datagrid background autogeneratecolumn

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×2

datagrid ×2

wpf ×2

autogeneratecolumn ×1

background ×1

colors ×1

xaml ×1