private void SortByColumn(GridViewColumnHeader sortColumn) { _projectList.Items.SortDescriptions.Clear(); var sortDescription = new SortDescription(); sortDescription.PropertyName = SortableColumnHeaderAttachedProperties.GetSortPropertyName(sortColumn); var sortDir = SortableColumnHeaderAttachedProperties.GetSortDirectionProperty(sortColumn); sortDescription.Direction = sortDir == null ? ListSortDirection.Ascending : sortDir == ListSortDirection.Ascending ? ListSortDirection.Descending : ListSortDirection.Ascending; SortableColumnHeaderAttachedProperties.SetSortDirectionProperty(obj: sortColumn, value: sortDescription.Direction); _projectList.Items.SortDescriptions.Add(sortDescription); foreach (var column in _sortableColumns) { if (column == sortColumn) { continue; } SortableColumnHeaderAttachedProperties.RemoveSortDirectionProperty(obj: column); } }
private void UpdateColumnSorting(GridViewColumnHeader sortColumn, SortDescription sortDescription) { // Add new sort description _projectList.Items.SortDescriptions.Clear(); _projectList.Items.SortDescriptions.Add(sortDescription); // Upate sorting info of the column to sort on SortableColumnHeaderAttachedProperties.SetSortDirectionProperty(obj: sortColumn, value: sortDescription.Direction); // Clear sort direction of other columns and update automation properties on all columns foreach (var column in _sortableColumns) { if (column == sortColumn) { UpdateHeaderAutomationProperties(column); continue; } SortableColumnHeaderAttachedProperties.RemoveSortDirectionProperty(obj: column); UpdateHeaderAutomationProperties(column); } }
public void RestoreUserSettings(UserSettings userSettings) { // find the column to sort var sortColumn = _sortableColumns.FirstOrDefault( column => { return(StringComparer.OrdinalIgnoreCase.Equals( SortableColumnHeaderAttachedProperties.GetSortPropertyName(obj: column), userSettings.SortPropertyName)); }); if (sortColumn == null) { return; } // add new sort description _projectList.Items.SortDescriptions.Clear(); _projectList.Items.SortDescriptions.Add( new SortDescription( userSettings.SortPropertyName, userSettings.SortDirection)); // upate sortInfo SortableColumnHeaderAttachedProperties.SetSortDirectionProperty(obj: sortColumn, value: userSettings.SortDirection); // clear sort direction of other columns foreach (var column in _sortableColumns) { if (column == sortColumn) { continue; } SortableColumnHeaderAttachedProperties.RemoveSortDirectionProperty(obj: column); } }