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;

    }

在此处输入图像描述

在这一点上,我已经设法创建了一个应用程序来添加/删除和更新我的数据库中的项目。我还计划添加一些统计数据(从图形可视化开始),但我遇到了一个问题。我想根据月份分开列。因此,例如,无论我添加、删除或更新多少项目,从附加的图像中可以看出,每个项目的总金额都会添加到 12 月。但是,当 1 月到来时,我希望看到与 12 月相邻的对我的物品数量的任何新添加的修改。PS:有很多代码重复,稍后会解释。

4

1 回答 1

0

我已经设法将我上面的答案放在一起,这可能对将来的某人有用 我所做的是 1)从我的数据库中获取我的数据。2) 使用 LINQ 查询查找感兴趣的月份**

  • 而不是选择项目(即中继器、节点)

** 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()  }**
                },


        };

有一些代码重复,我很确定实际上有一种更简洁的代码方式,但现在这似乎可以解决问题。当我简化代码时,我会发布它。

于 2017-12-10T12:23:56.357 回答