WPF C#获取DataGrid列的总和 [英] WPF C# Get the Total Sum of a DataGrid Column
问题描述
我需要每一个事件被触发时(可能CelLEditEnding)来总结所有的值在DataGrid,并在标签中显示它。我有以下代码:
I need to sum all of the values in a DataGrid every time an event is fired (probably CelLEditEnding) and display it in a label. I have the following code:
private void tblData_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
double sum = 0;
//System.Windows.MessageBox.Show(tblData.SelectedItems.Count.ToString());
for (int i = 0; i < tblData.SelectedItems.Count; i++)
{
TextBlock tb = tblData.Columns[3].GetCellContent(tblData.SelectedItems[i]) as TextBlock;
double test = Convert.ToDouble(tb.Text);
sum = sum + test;
lblTotal.Content = "$ " + sum.ToString();
//System.Windows.MessageBox.Show(sum.ToString());
的问题是,只有一行受到影响,在一排实际上被概括和显示为标签是随机的。正如你可以看到我添加了一个mesage盒子,告诉我是在DataGrid,结果是1,每次行的总数。我不知道如何来解决这个问题,我很小白编程,并具有与技术术语的问题。 。任何帮助是极大的赞赏。
The problem is that only one row is affected, the one row that actually gets summed up and displayed into the label is random. As you can see I added a mesage box to show me the total number of rows that are in the DataGrid, the result is 1 every time. I don't know how to get around this issue, I am very noob to programming and have issues with the technical jargon. Any help is greatly appreciated.
推荐答案
的for(int i = 0; I< dataGrid.Items.Count ++我)
{
for (int i = 0; i < dataGrid.Items.Count; ++i) {
sum += (decimal.Parse((dataGrid.Columns[4].GetCellContent(dataGrid.Items[i])as TextBlock).Text));
}
这篇关于WPF C#获取DataGrid列的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!