Don't sort the rows if grid or col not Sortable.
Add property dGrid.SaveRestoreDataSet.

This is analagous to the SaveRestoreValue property in the data-
bound controls. It allows for editable grids to be persisted
between runs. I'm using it to make a where clause builder for
the app I'm currently working on.

Performance, even for very small datasets, doesn't seem very good,
but it does work. Obviously only use this sparingly, and not for
DataSource-bound grids, and not for large grids.