繁体   English   中英

如何从DataGrid C#WPF更改特定单元格的前景

[英]How can I change foreground for specific cell from DataGrid c# wpf

为了从DataGrid中找到特定的单元格,我使用了HERE的代码,它可以正常工作。 但是这段代码只能解决我一半的问题。

首先,我想找到一些特定的单元格,然后将前景更改为特定的颜色。

这是我的方法。 但是前景没有改变。

for (int i = 0; i < dataGrd.Items.Count; i++)
{
    for (int j = 0; j < dataGrd.Columns.Count; j++)
    {
        DataGridCell cell = GetCell(i, j);
        TextBlock tb = cell.Content as TextBlock;

        if (j == 1)
        {
            double measure = double.Parse(tb.Text);

            if (measure > 22.5)
            {
                cell.Foreground = Brushes.Red;
            }
        }       
    }
}

我首先调试行单元cell.Foreground = Brushes.Red; 正在运行,但是当我看到结果时,没有单元格显示红色前景。

Xaml:

<DataGrid BorderThickness="0" Background="Transparent" Name="grdFilter" Width="900" MinHeight="430" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" ColumnWidth="*" ItemsSource="{Binding Datas}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="True" IsReadOnly="True">
                <DataGrid.Columns>
                    <DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=Date}" Header="{catel:LanguageBinding ResourceName=DateTimesSplashScreen}" />  

                    <DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=AirTemperatureValue}" Header="{catel:LanguageBinding ResourceName=SensorOneColorSettings}" />

                    <DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=HumidityValue}" Header="{catel:LanguageBinding ResourceName=SensorTwoColorSettings}" />

                    <DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=FluidTemperatureValue}" Header="{catel:LanguageBinding ResourceName=SensorThreeColorSettings}">
                    </DataGridTextColumn>

                    <DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=LightValue}" Header="{catel:LanguageBinding ResourceName=SensorFourColorSettings}" />


                </DataGrid.Columns>
            </DataGrid>

编辑:现在,当我尝试修复时,我发现更改了前景,但在方法完成后未保存。 如何保存前景的更改

您正在更改Cell前景色,而不是TextBlock前景色

更换

cell.Foreground = Brushes.Red;

tb.Foreground = Brushes.Red;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM