I need your expertise on a situation about one GridView.
The gridview display a daily rows with a running value (3 column Date, Value, RunningValueOfValue). As it is a daily row with a few year of historical data there is a couple of thousand row in the datasource. As there is a running value, a change on one row should also update all following row.
The datasource of the grid is a WCF Service. On CellValueChanged, I send the modification to the service which will return the new set of data (as an array) for all row (The calculation of the running value is made in the WCF Service). Then I have tested two options :
- I set the new array as the datasource of the grid. It is fast but the position of the grid is set back on top and I don't think my user will be happy about it.
- I use the new array to update each object in the actual binding source. It is very slow (more than 1 min) because the binding list raise a lot of event for updating the gridview (depending on the size). If I play with RaiseListChangedEvents and ResetBindings, it become fast again but the ResetBindings will have the effect as changing the datasource...
What is the best way to handle this kind of situation ? Using an unbound datagridview ?