一些数据是红色字体



我有一个使用caliburn.micro的WPF应用程序。我有一个datagrid:

        <DataGrid x:Name="WeatherStations"
            Grid.Row="0"
            AutoGenerateColumns="False"
            BaseControls:DataGridExtension.Columns="{Binding WeatherStationColumns}"
            CanUserAddRows="False" IsReadOnly="True"
            SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}"
            SelectedItem="{Binding Path=SelectedWeatherStation, Mode=TwoWay}">
    </DataGrid>

由于某些列的某些单元格中的一些神秘原因数据以红色前景显示。我找不到可能导致这一点的原因,并且由于相邻单元格包含相似的数据,但我看不到有关这些特定细胞中数据的任何特殊内容,但是数据是黑色的。
更奇怪的是,最初我只有几个带有红色前景的单元,但是在向下滚动后,该特定列中的大多数单元都变成红色。

滚动时,数据杂志将重复使用正在显示的新数据的单元格。这是一个称为"虚拟化"的过程。如果您通过行为或代码来设置单元格的前景颜色,那么即使通过虚拟化更换了单元格值,该前景颜色也会与单元格保持在一起。

我有一个直觉,即在BaseControls:DataGridExtension.Columns中的某个地方,您正在设置前景颜色。当页面加载和滚动之前,红色单元的值可能都具有共同点(所有负数,低于一定阈值,错误,等等)。在您的代码(代码范围或标记)中找到在哪里设置的位置,这应该为您解决问题的良好开始。

最新更新