Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF DataGridTextColumn如何基于单元格内容在样式中绑定前景色_C#_Wpf_Wpf Controls_Wpfdatagrid - Fatal编程技术网

C# WPF DataGridTextColumn如何基于单元格内容在样式中绑定前景色

C# WPF DataGridTextColumn如何基于单元格内容在样式中绑定前景色,c#,wpf,wpf-controls,wpfdatagrid,C#,Wpf,Wpf Controls,Wpfdatagrid,我有一个DataGrid,其中有以下内容 <DataGridTextColumn Header="MyHeader" HeaderStyle="{StaticResource ServiceStatusColumn}" ElementStyle="{StaticResource ServiceStatusElementStyle}" Binding="{B

我有一个DataGrid,其中有以下内容

<DataGridTextColumn Header="MyHeader"        
                    HeaderStyle="{StaticResource ServiceStatusColumn}"
                    ElementStyle="{StaticResource ServiceStatusElementStyle}"
                    Binding="{Binding PuServiceStatus, Converter={StaticResource serviceStatusText}}">
    <DataGridTextColumn.CellStyle>
        <Style TargetType="DataGridCell" BasedOn="{StaticResource ServiceStatusCell}">
            <Setter Property="Foreground" Value="{Binding PuServiceStatus, Converter={StaticResource serviceStatusColor}}" />
        </Style>
    </DataGridTextColumn.CellStyle>
 </DataGridTextColumn>

任何帮助都将不胜感激。

将setter放在DataGridRow上对我很有用。但是,这会更改整行的前景

<Style x:Key="RowProcessIdAndLevel" TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource {x:Type DataGridRow}}">
        <Setter Property="Foreground" Value="{Binding Level, Converter={StaticResource LevelToForeground}}"/>
</Style>

您是否看到了
PuServiceStatus
的正确文本,只是前景错误?如果是,则可能是
serviceStatusColor
转换器有问题。检查转换器是否返回正确的
笔刷值。
<Style x:Key="ServiceStatusCell" TargetType="DataGridCell">
    <Setter Property="TextBlock.TextAlignment" Value="Center" />
    <Setter Property="Width" Value="20"/>
    <Setter Property="Height" Value="20"/>
</Style>
<Style x:Key="RowProcessIdAndLevel" TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource {x:Type DataGridRow}}">
        <Setter Property="Foreground" Value="{Binding Level, Converter={StaticResource LevelToForeground}}"/>
</Style>