我有一个WPF MVVM应用程序。在WPF主窗口中,我有一个WPF Datagrid Toolkit。该数据网格具有一些列。根据某些条件(视图模型上绑定的属性),颜色将应用于整个行。此外,还有两个特殊的列。这两个列的类型为DataGridTextColumn,分别称为Date1和Date2。如果Date1的值大于Date2的值,则Date1和Date2单元格都应该用橘红色上色。分别绑定到MyDate1和MyDate2视图模型属性的Date1和Date2的类型为DateTime。
我的问题是:首先,当datagrid加载数据时,行以及Date1和Date2列的颜色正确。由于“日期1”>“日期2”,出现了一些行,“日期1”和“日期2”用橘红色涂成彩色。然后,如果我使用垂直滚动条向下滚动数据网格,然后再次向上滚动到第一数据网格行,则我注意到,尽管Date1 <= Date2,现在更多行(Date1和Date2列)显示为橙色红色。
怎么了?
查看:
<Window x:Name="MainWindow" x:Class="My.Apps.WPF.TestApp.wMain"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:classes="clr-namespace:My.Apps.WPF.TestApp.Classes"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
WindowState="Maximized">
<Grid x:Name="MyGrid" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<my:DataGrid Grid.Row="1" Name="MyDg"
AutoGenerateColumns="False"
ItemsSource="{Binding Path=MyListOfItems}"
SelectedItem="{Binding Path=MySelectedItem}"
VerticalAlignment="Stretch" IsReadOnly="True"
SelectionMode="Single" ColumnWidth="*"
SelectionChanged="MyDg_SelectionChanged"
Width="{Binding Path=ActualWidth, ElementName=MyGrid}">
梦里花落0921
相关分类