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 SortByColumn(GridViewColumnHeader sortColumn) { 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; UpdateColumnSorting(sortColumn, sortDescription); }
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) { if (userSettings == null) { return; } // find the column to sort var sortColumn = _sortableColumns.FirstOrDefault( column => { return(StringComparer.OrdinalIgnoreCase.Equals( SortableColumnHeaderAttachedProperties.GetSortPropertyName(obj: column), userSettings.SortPropertyName)); }); if (sortColumn == null) { return; } UpdateColumnSorting(sortColumn, new SortDescription(userSettings.SortPropertyName, userSettings.SortDirection)); }
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); } }
public SolutionView() { InitializeComponent(); // Change ItemContainerStyle of the _versions combobox so that // for a null value, a separator is generated. var dataTrigger = new DataTrigger(); dataTrigger.Binding = new Binding(); dataTrigger.Value = null; dataTrigger.Setters.Add(new Setter(TemplateProperty, FindResource("SeparatorControlTemplate"))); // make sure the separator can't be selected thru keyboard navigation. dataTrigger.Setters.Add(new Setter(IsEnabledProperty, false)); var style = new Style(typeof(ComboBoxItem), _versions.ItemContainerStyle); style.Triggers.Add(dataTrigger); _versions.ItemContainerStyle = style; _projectList.SizeChanged += ListView_SizeChanged; ((GridView)_projectList.View).Columns.CollectionChanged += Columns_CollectionChanged; //Requested Version column may not be needed, but since saved Sorting Settings are being restored at initialization time, //we should go ahead and create the Header column for it here with its Sort property name. _requestedVersionColumn = new GridViewColumnHeader(); SortableColumnHeaderAttachedProperties.SetSortPropertyName(_requestedVersionColumn, "RequestedVersion"); _sortableColumns = new List <GridViewColumnHeader> { _projectColumnHeader, _installedVersionColumnHeader, _requestedVersionColumn }; SortByColumn(_projectColumnHeader); }
private void UpdateHeaderAutomationProperties(GridViewColumnHeader columnHeader) { var sortDir = SortableColumnHeaderAttachedProperties.GetSortDirectionProperty(columnHeader); string oldHelpText = AutomationProperties.GetHelpText(columnHeader); string newHelpText; if (sortDir == ListSortDirection.Ascending) { newHelpText = Resx.Resources.Accessibility_ColumnSortedAscendingHelpText; } else if (sortDir == ListSortDirection.Descending) { newHelpText = Resx.Resources.Accessibility_ColumnSortedDescendingHelpText; } else { newHelpText = Resx.Resources.Accessibility_ColumnNotSortedHelpText; } AutomationProperties.SetHelpText(columnHeader, newHelpText); var peer = UIElementAutomationPeer.FromElement(columnHeader); peer?.RaisePropertyChangedEvent(AutomationElementIdentifiers.HelpTextProperty, oldHelpText, newHelpText); }