【问题标题】:Datagrid cell font colour is changing the entire rowDatagrid单元格字体颜色正在改变整行
【发布时间】:2014-06-16 16:28:24
【问题描述】:

在我的 WPF 应用程序中,我有一个数据网格。我正在尝试根据某些属性值更改数据网格中单元格的颜色。这部分正在工作。但是问题是整行的字体颜色都改变了,我只希望一个单元格的字体在满足条件时改变颜色。

下面是我的代码。我认为将 TargetType 设置为 DatagridCell 只会影响一个单元格而不是整个行。

<!-- DataGrid Cell style -->
    <Style x:Key="DG_Cell" TargetType="{x:Type DataGridCell}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type DataGridCell}">
                    <Border x:Name="border"
                                Background="Transparent"
                                BorderBrush="Transparent"
                                BorderThickness="1"
                                SnapsToDevicePixels="True">
                        <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <DataTrigger Binding="{Binding NominalDiff, Converter={StaticResource nominalPosToBool}, ConverterParameter=0}" Value="True">
                            <Setter Property="Foreground" Value="Green"/>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding NominalDiff, Converter={StaticResource nominalNegToBool}, ConverterParameter=0}" Value="True">
                            <Setter Property="Foreground" Value="Red"/>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding PriceDiff, Converter={StaticResource priceToBool}, ConverterParameter=0}" Value="True">
                            <Setter Property="Foreground" Value="Blue"/>
                        </DataTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>            
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Foreground" Value="Black"/>
                <Setter Property="FontWeight" Value="Bold"/>
            </Trigger>
        </Style.Triggers>            
    </Style>

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

    您可能应该更改数据网格中的 SelectionUnit 属性:

    SelectionUnit="Cell"
    

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 2017-08-07
      • 2011-12-24
      • 2011-07-29
      相关资源
      最近更新 更多