public static void ResetGridGrouping(SfDataGrid dataGrid, string prefab, MasterTablePage page, bool shouldReset) { if (!shouldReset) { dataGrid.GroupColumnDescriptions.Clear(); //ResetGridSorting(dataGrid, prefab, true); page.DefaultGroupingButton.IsChecked = false; page.SearchBox.IsEnabled = true; return; } dataGrid.GroupColumnDescriptions.Clear(); if (string.IsNullOrWhiteSpace(prefab)) { return; } List <int> groups = App.GetGroups(prefab); //groups.Reverse(); using (var conn = new SqlConnection(App.ConnectionString)) { conn.Open(); DataTable prefabTable = App.GetPrefabDataTable(conn, $"{App.Settings["Schema"]}_PREFABS", prefab); foreach (int i in groups) { var grouper = new GroupColumnDescription { ColumnName = prefabTable.Rows[i]["COLUMNS"].ToString() }; if (!dataGrid.GroupColumnDescriptions.Contains(grouper)) { dataGrid.GroupColumnDescriptions.Add(grouper); } } conn.Close(); } page.SearchBox.IsEnabled = false; //ResetGridSorting(dataGrid, prefab); }
public static SfDataGrid DefaultDataGridTemplate(DataTable dataTable, int sheetIndex, MasterTablePage page, string prefab) { SfDataGrid dataGrid = new SfDataGrid { ItemsSource = dataTable, AllowDraggingColumns = true, AllowDraggingRows = true, AllowDeleting = true, AllowGrouping = true, ShowRowHeader = true, AllowFrozenGroupHeaders = true, AllowFiltering = true, AllowTriStateSorting = true, ShowSortNumbers = true, AllowResizingColumns = true, AllowEditing = true, NavigationMode = NavigationMode.Cell, AutoGenerateColumns = false, SelectionUnit = GridSelectionUnit.Any, SelectionMode = GridSelectionMode.Extended, GridValidationMode = GridValidationMode.InView, IsEnabled = true, HeaderRowHeight = 30, ShowGroupDropArea = true, ColumnSizer = GridLengthUnitType.Auto, IsDynamicItemsSource = true, LiveDataUpdateMode = LiveDataUpdateMode.AllowDataShaping, UsePLINQ = true, AddNewRowPosition = AddNewRowPosition.FixedTop }; //dataGrid.SearchHelper = new SearchHelperExt(dataGrid); //dataGrid.SortColumnDescriptions.CollectionChanged += (sender, args) => //{ // page.ResetSorts.IsChecked = false; //}; //dataGrid.RecordDeleted += (sender, args) => { page.RevertChanges.IsEnabled = true; }; var j = 0; dataGrid.Loaded += (sender, args) => { if (j == 0) { GenerateColumnsSfDataGrid(dataGrid, dataTable, prefab); ResetGridSorting(dataGrid, prefab, true); } j++; }; return(dataGrid); }