Wpf 有些数据是红色字体的

Wpf 有些数据是红色字体的,wpf,datagrid,Wpf,Datagrid,我有一个使用Caliburn.Micro的WPF应用程序。我有一个数据网格: <DataGrid x:Name="WeatherStations" Grid.Row="0" AutoGenerateColumns="False" BaseControls:DataGridExtension.Columns="{Binding WeatherStationColumns}" Can

我有一个使用Caliburn.Micro的WPF应用程序。我有一个数据网格:

        <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>

由于某种神秘的原因,其中一列的某些单元格中的数据显示为红色前景。我找不到导致这种情况的原因,我也看不到这些特定单元格中的数据有什么特别之处,因为相邻单元格包含类似的数据,但这些数据是黑色的。

更奇怪的是,最初我只有几个前景为红色的单元格,但向下滚动后,该特定列中的大多数单元格都变为红色。

滚动时,DataGrid将重新使用单元格来显示新数据。这是一个称为“虚拟化”的过程。若您通过行为或在代码隐藏中设置单元格的前景色,那个么即使通过虚拟化替换了单元格值,前景色也将保留在单元格中


我有一种预感,在
BaseControls:DataGridExtension.Columns
的某个地方,您正在设置前景色。当页面加载并且在滚动之前,红细胞的值可能都有一些共同点(都是负值、低于某个阈值、错误等)。找出代码中设置的位置(代码隐藏或标记),这将为您解决问题提供一个良好的开端。

谢谢您的回答。第一个红色值似乎是红色的,因为它是负数,下面的单元格紧跟其后。但是有没有办法摆脱这种虚拟化效应呢?现在我知道我可以禁用虚拟化,但我确实需要它,因为我有太多记录……没关系,我发现禁用容器回收是这样的:virtualzingstackpanel.isvirtualization=“True”virtualzingstackpanel.VirtualizationMode=“Standard”