2017-08-15 208 views
0

我有一個綁定到對象列表的WPF DataGrid。 正在顯示的數據基本上是一天中每小時一班航班抵達&班次的表格。在WPF DataGrid列中查找最大值和最小值

的XAML爲DataGrid是:

<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,我綁定到網格: Traf ficGrid.ItemsSource = fltrowsList;

我想找到每個班級的最大和最小值,然後突出顯示列中的這兩個單元格。但是,我很難理解如何遍歷數據網格的每一列,並找到最大值和最小值。已經嘗試了幾種類似於以下的方法(迭代一列),但都沒有工作。

for (nCol = 1; nCol < 13; nCol++) 
{ 
    for (nRow = 0; nRow < 24; nRow++) 
    { 
     var rr = TrafficGrid.Columns[nCol].GetCellContent(TrafficGrid.CurrentCell(nRow)); 

也許我不是在正確的道路這種思維。任何援助將不勝感激。

回答

0

由於您的單元類中已經有了高亮屬性,因此您可以確定最小值和最大值。以數據庫結果做一個LINQ查詢,如var fClassMax = databaseResult.Max(t => t.flightClass)var fClassMin = databaseResult.Min(t => t.flightClass),那麼你就有了這些值,並且需要將hightlight屬性設置爲值匹配的地方。

+0

Thanx的建議。我會嘗試並報告。不過,我將會旅行一段時間,所以我可能會在幾天後發佈回覆。 – user2000900