in ContosoApp/Views/DataGridHelper.cs [44:61]
public static void Sort(this DataGrid dataGrid, DataGridColumn columnToSort, Action<string, bool> sort)
{
var lastSortedColumn = dataGrid.Columns.Where(column =>
column.SortDirection.HasValue).FirstOrDefault();
bool isSortColumnDifferentThanLast = columnToSort != lastSortedColumn;
bool isAscending = isSortColumnDifferentThanLast ||
columnToSort.SortDirection == DataGridSortDirection.Descending;
columnToSort.SortDirection = isAscending ?
DataGridSortDirection.Ascending : DataGridSortDirection.Descending;
if (isSortColumnDifferentThanLast && lastSortedColumn != null)
{
lastSortedColumn.SortDirection = null;
}
var propertyName = columnToSort.Tag as string ?? columnToSort.Header.ToString();
sort(propertyName, isAscending);
}