我有一个绑定到对象列表的WPF DataGrid。 显示的数据基本上是一个航班抵达表和每天每小时离开。
数据网格的XAML是:
<DataGrid Name="TrafficGrid" Margin="20,10,10,0" Grid.Row="1" Height="550"
VerticalAlignment="Top"
Background="Beige" RowBackground="Beige"
HorizontalContentAlignment="Center"
SelectionMode="Single"
SelectionUnit="Cell">
</DataGrid>
对象声明是:
public class fltgridCell
{
public int cellValue { get; set; }
public int highlight { get; set; }
}
列表声明是:
public List<fltgridRow> fltrowsList = new List<fltgridRow>();
public class fltgridRow
{
public string hour { get; set; }
public fltgridCell cmclDep { get; set; } = new fltgridCell() {cellValue = 0, highlight = 0};
public fltgridCell cmclArr { get; set; } = new fltgridCell( ) { cellValue = 0, highlight = 0 };
public fltgridCell corpDep { get; set; } = new fltgridCell( ) { cellValue = 0, highlight = 0 };
public fltgridCell corpArr { get; set; } = new fltgridCell( ) { cellValue = 0, highlight = 0 };
public fltgridCell gaDep { get; set; } = new fltgridCell( ) { cellValue = 0, highlight = 0 };
public fltgridCell gaArr { get; set; } = new fltgridCell( ) { cellValue = 0, highlight = 0 };
}
从数据库中检索每种类型的航班的计数并填充fltrowsList后,我绑定到网格: TrafficGrid.ItemsSource = fltrowsList;
我想找到每类飞行的最大值和最小值,然后突出显示列中的这两个单元格。但是,我很难过如何遍历数据网格的每一列并找到最大值和最小值。尝试了几种类似于以下的方法(迭代一列),但都没有效果。
for ( nCol = 1; nCol < 13; nCol++ )
{
for ( nRow = 0; nRow < 24; nRow++ )
{
var rr = TrafficGrid.Columns[nCol].GetCellContent(TrafficGrid.CurrentCell(nRow) );
等
也许我没有以正确的方式思考这个问题。非常感谢任何帮助。
答案 0 :(得分:0)
由于您的单元格类中已有高亮属性,因此可以确定之前的最小值和最大值。获取数据库结果并执行LINQ查询,如var fClassMax = databaseResult.Max( t => t.flightClass)
和var fClassMin = databaseResult.Min( t => t.flightClass)
,然后您有值并需要将hightlight属性设置为值匹配的位置。