When an user click the header for a column that isn't sorted, it initially will sort ascending, but depending on the business context, that doesn't always make sense. The only way I've found to handle this is a hackish chunk of code from 2009 or so. http://es.infragistics.com/community/forums/t/14674.aspx
Have more recent versions of ultragrid made this easier, or is that post still the best way to handle this situation?
One option I've been contemplating is writing an IComparer that's intentionally wrong to trick the column into sorting descending instead of ascending and using that as the column's sort comparer. Would that possibly be a better alternative (or at least an acceptable alternative) to the post I linked to? Any gotchas I might hit?
Hello Jeffrey,
One alternative approach is to use the MouseClick event to check if the user clicked on the header and if he/she did, to check what the sort indicator is. If it is Sortindicator.None you can change it to SortIndicator.Ascending. That way you will sort the column in an ascending order from the event. After that the grid will sort the column again, because of the HeaderClickAction. The end result will be that the grid column is sorted in a descending order.
I have attached a sample which demonstrates this suggestion.
Feel free to let me know if you have any additional questions.
Hi Jeffrey,
No, this functionality has not changed in the grid.
A comparer could work, but the sort indicator would then be showing the wrong direction, so you'd need a CreationFilter or a DrawFilter to fix that. I don't see how that would be any better than the workaround you are already using. It's just a lot of work for nothing.