2017-08-15 124 views
0

オブジェクトのリストにバインドされたWPF DataGridがあります。 表示されているデータは、基本的に1時間ごとの出発便のフライト到着表&です。WPF DataGrid列の最大値と最小値を見つける

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を作成すると、グリッドにバインドされます。 Traf ficGrid.ItemsSource = fltrowsList;

各飛行クラスの最大値と最小値を見つけて、列内の2つのセルをハイライトしたいとします。しかし、データグリッドの各列を反復して最大値と最小値を見つける方法については、私は困惑しています。次のようないくつかの手法を試してみましたが(列を繰り返す)、何もできません。

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

など

たぶん私は、正しい方法でこれを考えていないです。どんな支援も大歓迎です。

答えて

0

セルクラスに既にハイライトプロパティがあるので、前にmin値とmax値を決定することができます。データベース結果にvar fClassMax = databaseResult.Max(t => t.flightClass)var fClassMin = databaseResult.Min(t => t.flightClass)のようなLINQクエリを実行すると、値があり、値が一致する場所にhightlightプロパティを設定する必要があります。

+0

提案のためのThanx。私はそれを試して報告します。しかし、私は少し旅行しているので、私は返信を投稿する前にそれは数日かもしれません。 – user2000900

関連する問題