The GridDataBoundGrid uses the sorting support from the DataView associated with the DataSource. To do a custom sort through the DataView, the object in the column should implement IComparable. When this is done, the DataView will use the IComparable implementation when it tries to sort that column. Here is a forum thread with a sample. http://64.78.18.34/Support/Forums/message.aspx?MessageID=18035
Here is another way to do this that is more involved than just implementing IComparable on a derived object, but it does allow you to sort things with out deriving an object. It does away with teh grid depending upon the DataView.Sort support. This way you can sort columns and not see them move around as you edit entries. You only have to have an IComparer that you can use. You can also use this technique to sort unbound columns.
GridDataBoundGridCustomSorting_7069.zip