2

我想弄清楚在 wpf 中计算 DataGrid 列总值的最佳方法是什么。

  • 我正在使用数据集在我的 DataGrid 中显示来自 sql 的数据(以及用于更新的 tableApter)
  • 我希望在 DataGrid 中编辑数字时动态更新信息
  • 我希望总和显示在 DataGrid 下方的标签/文本框或页脚中

这样做的最佳做法是什么?

4

2 回答 2

3

您可以侦听将导致列中的值更改的各种事件,然后在触发事件时通过调用下面的“calculateTotal()”之类的方法来计算总数。

DataTables 事件在这里定义:here

private int colTotal = 0; // class level

public Myclass()
{ 
    // Add a ColumnChanged event handler for the table.
    MyDataTable.ColumnChanged += new DataColumnChangeEventHandler(Column_Changed);
    // wire up more event handlers here..
}

private static void Column_Changed(object sender, DataColumnChangeEventArgs e )
{
   calculateTotal();
}

// calculate total of specified column
void calculateTotal()
{
   colTotal = myDataSet.Tables["myTable"].Compute("SUM(myColumnName)", String.Empty);
} 

colTotal 将是绑定到您的文本框或标签的公共属性

public int ColTotal
{
    get 
    { 
      return colTotal; 
    }
    set
    {
      colTotal= value;
      OnPropertyChanged("ColTotal");
    }
}
于 2013-01-02T21:39:59.077 回答
0

您必须在 DataSet Table Row 或 DataGrid 中使用 for 循环或 while,将其求和并在标签中显示结果

或者

您可以Compute在数据集表列上使用

于 2013-01-02T20:51:42.833 回答