5

我有一个带有 Datagridview 的 Windows 窗体,其中包含来自 xml 文件的数据。DGV 设置如下:日期、产品、价格

有 10 行数据。

我试图计算价格从一行到下一行的变化并且难以找到解决方案。例如:

1/1/12, ABC, $2.00
1/1/12, ABC, $2.50

Net Change: .50

跨列我可以使用 Table.Columns.Expression,但我不清楚如何减去先前与当前的计算。

我考虑过遍历列,添加到新表并以这种方式计算,但似乎是一个低于标准的解决方案。一旦我得到更改,我想将其添加到该 Datagridview。

没有测试过,但是是这样的:

if (dataGridView1.Rows.Count > 0)
{
    specifier = "###,###.00";

    double tier1Minus = 0;
    double tier2Minus = 0;

    for (int i = 0; i < dataGridView1.Rows.Count; ++i)
    {
        tier1Minus += Convert.ToDouble(dataGridView1.Rows[i].Cells["Price"].Value);

        tier2Minus += Convert.ToDouble(dataGridView1.Rows[i+1].Cells["Price"].Value);
    }

    // then add to dataGridView1
}
4

1 回答 1

3

为什么不做类似(未经测试)的事情:

for(int i = 0; i < dataGridView1.Rows.Count - 1; i++)
    dataGridView1.Rows[i+1].Cells["NetChange"].Value =
        Convert.ToDouble(dataGridView1.Rows[i+1].Cells["Price"].Value) - 
        Convert.ToDouble(dataGridView1.Rows[i].Cells["Price"].Value);

或者更好的是,在您第一次从文件中导入数据并插入行时计算它。

于 2012-07-09T18:45:34.857 回答