要从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>
编辑:现在,当我尝试修复时,我发现改变了前景但是在方法完成后没有保存。 如何保存前景的更改?
答案 0 :(得分:0)
您正在更改Cell
前景色而不是TextBlock
前景色
替换
cell.Foreground = Brushes.Red;
与
tb.Foreground = Brushes.Red;