Ops...
I found this just now, in some formatting code:
if ((data.TotalPrice - data.TotalCost) < 0) { ApplyToCells(row, cell => cell.Style.ForeColor = Color.Red); } ApplyToCells(row, cell => cell.Style.ForeColor = Color.Black);
Problem is that it should have been
if ((data.TotalPrice - data.TotalCost) < 0) { ApplyToCells(row, cell => cell.Style.ForeColor = Color.Red); } else { ApplyToCells( row, cell => cell.Style.ForeColor = Color.Black ); }
This caused an infinate repainting loop, oh well. fixed now. Trouble is that no one tested the scenario when the row had negative.