C#WPF数据网格填充数据网格问题

C#WPF数据网格填充数据网格问题,c#,wpf,datagrid,C#,Wpf,Datagrid,我试图在WPF DataGrid中制作一个7天滚动平均体重计算器。因此,基本上是你一周的体重总和除以7=你7天的平均体重。因此,用户将其权重放入名为gridListValues的ObservableCollectionsList中,然后将其添加到DataGrid中。7天后,他们在数据网格的另一列中得到了7天的平均重量 问题是,当我在DataGrid中七次输入权重时,我得到了以下结果: ((6*重量)/7)。但实际结果应该是((7*重量)/7)。我想这是因为我调用的方法在实例化对象并将其添加到列表

我试图在WPF DataGrid中制作一个7天滚动平均体重计算器。因此,基本上是你一周的体重总和除以7=你7天的平均体重。因此,用户将其权重放入名为
gridListValues
ObservableCollectionsList
中,然后将其添加到
DataGrid
中。7天后,他们在数据网格的另一列中得到了7天的平均重量

问题是,当我在DataGrid中七次输入权重时,我得到了以下结果:
((6*重量)/7)
。但实际结果应该是
((7*重量)/7)
。我想这是因为我调用的方法在实例化对象并将其添加到列表的同时进行计算?但我不太确定该如何解决这个问题。代码如下:

private void AddWeightToGridButton_Click(object sender, RoutedEventArgs e)
{
    WeightGridValues averageWeight = new WeightGridValues();

    if (gridListValues.Count <= 5)
        gridListValues.Add(new WeightGridValues { Weight = AddWeightToGrid.Text, Date = Convert.ToString(AddDateToGrid) });

    else if (gridListValues.Count >= 6)
    {
        gridListValues.Add(new WeightGridValues { Weight = AddWeightToGrid.Text, Date = Convert.ToString(AddDateToGrid), SevenDayWeightAverage = SevenDayAverageCalc(averageWeight) });
    }
}

private string SevenDayAverageCalc(WeightGridValues averageWeight)
{
    decimal sevenDayCalc = 0;
    for (int i = 0; i < gridListValues.Count; i++)
    {
        sevenDayCalc += Convert.ToDecimal(gridListValues[i].Weight);
        Convert.ToDecimal(gridListValues[i].SevenDayWeightAverage);
    }
    sevenDayCalc = sevenDayCalc / 7;
    
    return averageWeight.SevenDayWeightAverage = Convert.ToString(sevenDayCalc);           
}

public class WeightGridValues
{
    public string Weight { get; set; }
    public string Date { get; set; }
    public string SevenDayWeightAverage { get; set; }
}
private void AddWeightToGridButton\u单击(对象发送方,路由目标)
{
WeightGridValues averageWeight=新的WeightGridValues();
如果(gridListValues.Count=6)
{
添加(新权重GridValues{Weight=AddWeightToGrid.Text,Date=Convert.ToString(AddDateToGrid),SevenDayWeightAverage=SevenDayAverageCalc(averageWeight)});
}
}
私有字符串SevenDayAverageCalc(WeightGridValues averageWeight)
{
十进制七天计算=0;
for(int i=0;i
XAML:



您可以将空的
WeightGridValues
添加到
gridListValues
,然后设置其各个元素

gridListValues.Add(new WeightGridValues());
gridListValues[gridListValues.Count-1].Weight = AddWeightToGrid.Text;
gridListValues[gridListValues.Count-1].Date= Convert.ToString(AddDateToGrid);
gridListValues[gridListValues.Count-1].SevenDayWeightAverage = SevenDayAverageCalc(averageWeight)

作为方法
SevenDayAverageCalc
的参数,有一种方法可以同时接收和处理新输入的重量

private void AddWeightToGridButton\u单击(对象发送方,路由目标)
{
WeightGridValues averageWeight=新的WeightGridValues();
如果(gridListValues.Count=6)
{
添加(新的权重GridValues{
权重=AddWeightToGrid.Text,
日期=Convert.ToString(AddDateToGrid),
SevenDayWeightAverage=SevenDayAverageCalc(averageWeight,AddWeightToGrid.Text)});
}
}

SevenDayAverageCalc
方法中,最好使用
语句,而不是
for
语句,因为必须为添加的每一行计算'7天平均值'

private string SevenDayAverageCalc(WeightGridValues averageWeight,string newWeight)
{
十进制七天计算=0;
int-cnt=1;
int currentRow;
while(cnt
gridListValues.Add(new WeightGridValues());
gridListValues[gridListValues.Count-1].Weight = AddWeightToGrid.Text;
gridListValues[gridListValues.Count-1].Date= Convert.ToString(AddDateToGrid);
gridListValues[gridListValues.Count-1].SevenDayWeightAverage = SevenDayAverageCalc(averageWeight)