private static CurrentSortOrder getSortOrder <T>(DataGridView grid) where T : class
        {
            CurrentSortOrder sort;

            if (!sortOrderGrid.ContainsKey(typeof(T)))
            {
                sort = new CurrentSortOrder();
                if (grid.SortOrder != SortOrder.None)
                {
                    sort.Column    = grid.SortedColumn.Name;
                    sort.Direction = grid.SortOrder == SortOrder.Ascending ? ListSortDirection.Ascending : ListSortDirection.Descending;
                }
                else
                {
                    sort.Column    = string.Empty;
                    sort.Direction = ListSortDirection.Ascending;
                }
                sortOrderGrid.Add(typeof(T), sort);
            }
            else
            {
                sort = sortOrderGrid[typeof(T)];
            }
            return(sort);
        }
        public static void ApplySortOrder <T>(DataGridView grid) where T : class
        {
            CurrentSortOrder sort = getSortOrder <T>(grid);

            if (!string.IsNullOrEmpty(sort.Column))
            {
                if (grid.Columns.Contains(sort.Column))
                {
                    grid.Sort(grid.Columns[sort.Column], sort.Direction);
                }
            }
        }
 public static void SetSortOrder <T>(CurrentSortOrder column) where T : class
 {
     SetSortOrder <T>(column.Column, column.Direction);
 }
 public static void SetSortOrder(Type t, CurrentSortOrder column)
 {
     SetSortOrder(t, column.Column, column.Direction);
 }