每次触发事件(可能是CelLEditEnding)时,我都需要对DataGrid中的所有值求和,并将其显示在标签中。我有以下代码:
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());
问题是只有一行受到影响,实际得到总结并显示在标签中的一行是随机的。如您所见,我添加了一个消息框来显示DataGrid中的总行数,每次结果为1。我不知道如何解决这个问题,我非常喜欢编程并且有技术术语的问题。非常感谢任何帮助。
答案 0 :(得分:0)
for (int i = 0; i < tblData.Items.Count; ++i)
{
//(decimal.Parse((tblData.SelectedCells[3].Column.GetCellContent(item) as TextBlock).Text))
sum += (decimal.Parse((tblData.Columns[3].GetCellContent(tblData.Items[i])as TextBlock).Text));
}
答案 1 :(得分:0)
for (int i = 0; i < dataGrid.Items.Count; ++i)
sum += (decimal.Parse((dataGrid.Columns[4].GetCellContent(dataGrid.Items[i]) as TextBlock).Text));