Вы пытались связать DataGrid с объектом DataTable (вместо представления) и установить для свойства «AllowSorting» значение true в DataGrid? Я полагаю, что сетка автоматически отсортирует источник таблицы для вас.
Если нет, вы всегда можете перехватить событие при щелчке по заголовку столбца и перестроить DataView для привязки к DataGrid.