personalizar - WPF C#Obtenga la suma total de una columna DataGrid
selecteditems datagrid c# (2)
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));
}
Necesito sumar todos los valores en un DataGrid cada vez que se dispara un evento (probablemente CelLEditEnding) y mostrarlo en una etiqueta. Tengo el siguiente código:
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());
El problema es que solo una fila se ve afectada, la única fila que realmente se suma y se muestra en la etiqueta es aleatoria. Como puede ver, agregué un cuadro de mensaje para mostrarme el número total de filas que están en DataGrid, el resultado es 1 cada vez. No sé cómo solucionar este problema, soy muy novato en programación y tengo problemas con la jerga técnica. Cualquier ayuda es muy apreciada.
for (int i = 0; i < dataGrid.Items.Count; ++i)
sum += (decimal.Parse((dataGrid.Columns[4].GetCellContent(dataGrid.Items[i]) as TextBlock).Text));