在WPF DataGrid列

时间:2017-08-15 16:18:16

标签: c# wpf datagrid

我有一个绑定到对象列表的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) );

也许我没有以正确的方式思考这个问题。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

由于您的单元格类中已有高亮属性,因此可以确定之前的最小值和最大值。获取数据库结果并执行LINQ查询,如var fClassMax = databaseResult.Max( t => t.flightClass)var fClassMin = databaseResult.Min( t => t.flightClass),然后您有值并需要将hightlight属性设置为值匹配的位置。