[英]How to change the Foreground color of a button in a DataGrid depending on values from another column? WPF c#
[英]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.