2017-12-06 5 views
0
private int SumOfNodes() 
    { 
     ManufacturingDataModel MDM = new ManufacturingDataModel(); 
     Test t = new Test(MDM); 

     List<Hardware> SumOfHardware = t.GetHardware().FindAll(x => x.Nodes != 0); 

     int SumOfNodes = 0; 

     foreach (Hardware i in SumOfHardware) 
     { 
      SumOfNodes += i.Nodes; 
     } 

     return SumOfNodes; 
    } 


    private int SumOfRepeaters() 
    { 
     ManufacturingDataModel MDM = new ManufacturingDataModel(); 
     Test t = new Test(MDM); 

     List<Hardware> SumOfHardware = t.GetHardware().FindAll(x => x.Repeaters != 0); 

     int SumOfRepeaters = 0; 

     foreach (Hardware i in SumOfHardware) 
     { 
      SumOfRepeaters += i.Repeaters; 
     } 

     return SumOfRepeaters; 
    } 

    private int SumOfHubs() 
    { 
     ManufacturingDataModel MDM = new ManufacturingDataModel(); 
     Test t = new Test(MDM); 

     List<Hardware> SumOfHardware = t.GetHardware().FindAll(x => x.Hubs != 0); 

     int SumOfHubs= 0; 

     foreach (Hardware i in SumOfHardware) 
     { 
      SumOfHubs += i.Hubs; 
     } 

     return SumOfHubs; 
    } 

    private string Month() 
    { 
     DateTime now = DateTime.Now; 

     string month = DateTime.Now.ToString("MMMM"); 

     return month; 
    } 

    private void DisplayData() 
    { 

     SeriesCollection = new SeriesCollection 
     { 
      new ColumnSeries 
       { 
         Title = "Nodes", 
         Values = new ChartValues<int> { SumOfNodes() } 
       }, 


     }; 

     SeriesCollection.Add 
     (
      new ColumnSeries 
      { 
       Title = "Repeaters", 
       Values = new ChartValues<int> { SumOfRepeaters() } 
      } 
     ); 

     SeriesCollection.Add 
     (
      new ColumnSeries 
      { 
       Title = "Hubs", 
       Values = new ChartValues<int> { SumOfHubs() } 
      } 
     ); 



     Labels = new[] { Month() }; 
     Formatter = value => value.ToString("N"); 

     DataContext = this; 

    } 

enter image description hereはライブチャートのI /削除しを追加し、自分のデータベースに私の項目を更新アプリを作成するために管理してきました。このポイントで

を使用して、x軸上で、その後の数ヶ月を追加します。いくつかの統計情報(グラフの視覚化を開始)を追加する予定もありますが、問題に直面しています。 月に基づいて列を区切りたい。例えば、追加した画像の数に関係なく、Decemeberには各アイテムの合計金額が追加、削除、更新されます。しかし、1月に私のアイテムの数量に新たに追加された変更が来たとき、私はDecemeberワンに隣接して見たいと思っています。 P.S .:後で説明するコードの繰り返しがたくさんあります。私は私が何をやったか、将来 に誰かのために役に立つかもしれその上に私の答えについて一緒に何かを置くことができた

答えて

0

は 1にあった)私のデシベルから私のデータを取得します。 LINQを使用して 2)関心の月間検索は**

  • を照会の代わりに、それはまた、アイテムを占めているようにすることで項目(すなわちリピータ、ノード)

** 3)を選択します興味のある月に興味があります。 4)上のコードで示したように、増分foreachループを実行します。 5)表示するメソッド(DisplayDataをDisplayDecemberDataに変更)を変更し、上記と同じ方法で使用します。 6)以降の月のメソッドをさらに作成し、追加情報をChartValuesオブジェクトに追加します。

がありますいくつかのコードの繰り返しであり、私は実際にそれを行うための多くのコード簡潔な方法があるかなり確信しているが、今のところ、これはトリックを行うようだ

private int DecemberNodes() 
    { 
     ManufacturingDataModel MDM = new ManufacturingDataModel(); 
     Test t = new Test(MDM); 

     List<Hardware> decembernodes = t.GetHardware().FindAll(x => x.Date.Month==12); 

     int DecemberSumOfNodes = 0; 

     foreach (Hardware i in decembernodes) 
     { 
      DecemberSumOfNodes += i.Nodes; 
     } 

     return DecemberSumOfNodes; 
    } 


    private int JanuaryNodes() 
    { 
     ManufacturingDataModel MDM = new ManufacturingDataModel(); 
     Test t = new Test(MDM); 

     List<Hardware> januarynodes = t.GetHardware().FindAll(x => x.Date.Month==01); 

     int JanuarySumOfNodes = 0; 

     foreach (Hardware i in januarynodes) 
     { 
      JanuarySumOfNodes += i.Nodes; 
     } 


    private void DisplayDecemberData() 
    { 

     SeriesCollection = new SeriesCollection 
     { 
      new ColumnSeries 
       { 
         Title = "Nodes", 
         Values = new ChartValues<int> { DecemberNodes() } 
       }, 


     }; 


    private void DisplayJanuaryData() 
    { 

     SeriesCollection = new SeriesCollection 
     { 
      new ColumnSeries 
       { 
         Title = "Nodes", 
         **Values = new ChartValues<int> { DecemberNodes(), JanuaryNodes() }** 
       }, 


     }; 

、以下を参照してください。コードを単純化すると、私はそれを投稿します。

関連する問題