public static IEnumerable <ColumnBase> GetSelectedColumns(this DataGridContext gridContext) { var query = from range in gridContext.SelectedCellRanges from item in gridContext.EnumerateColumns(range.ColumnRange) select item; return(query.Distinct().OrderBy(item => gridContext.VisibleColumns.IndexOf(item))); }