Thanks for using Syncfusion products.
After analyzation of your code part, you have called the Calculate method for every cell validation so please call that method only for Amount columns when differ the entered amount value and calculated amount value in TableControlCurrentCellValidating event. Please refer the below code snippet and refer the attached sample,
if (style.TableCellIdentity.Column.MappingName == "InvoiceAmount")
if (CurrentInvoiceAllocation == null)
CurrentInvoiceAllocation = new InvoiceAllocation();
decimal invoiceAmount = decimal.Parse(currentCell.Renderer.ControlValue.ToString());
if (CurrentInvoiceAllocation.InvoiceAmount != invoiceAmount)
CurrentInvoiceAllocation.InvoiceAmount = invoiceAmount;
// Check if all information exists for proper calculation
MessageBox.Show("Could not calculate the allocation per party for this payee.");
If we misunderstood your query, please provide the screenshot that shows your scenario or modify the below attached sample and revert us. It will be helpful to provide the solution at the earliest.