/// <summary>Modifies a ListView to be sortable by a newly clicked column.</summary> /// <param name="sender">Passed column</param> /// <param name="sort">Class containing current column and adorner sort</param> /// <param name="currentListView">ListView needing modification</param> /// <param name="color">Color for the adorner</param> public static ListViewSort ListViewColumnHeaderClick(object sender, ListViewSort sort, ListView currentListView, string color) { Color selectedColor = Colors.Black; if (!string.IsNullOrWhiteSpace(color)) { selectedColor = (Color)ColorConverter.ConvertFromString(color); } GridViewColumnHeader column = (sender as GridViewColumnHeader); if (column != null) { string sortBy = column.Tag.ToString(); if (sort.Column != null) { AdornerLayer.GetAdornerLayer(sort.Column).Remove(sort.Adorner); currentListView.Items.SortDescriptions.Clear(); } ListSortDirection newDir = ListSortDirection.Ascending; if (Equals(sort.Column, column) && sort.Adorner.Direction == newDir) { newDir = ListSortDirection.Descending; } sort.Column = column; sort.Adorner = new SortAdorner(sort.Column, newDir, selectedColor); AdornerLayer.GetAdornerLayer(sort.Column).Add(sort.Adorner); currentListView.Items.SortDescriptions.Add(new SortDescription(sortBy, newDir)); } return(sort); }
private void LVContactsColumnHeader_Click(object sender, RoutedEventArgs e) => _sort = Functions.ListViewColumnHeaderClick(sender, _sort, LVContacts, "#CCCCCC");
private void GridViewColumnHeader_Click(object sender, RoutedEventArgs e) => _sort = Functions.ListViewColumnHeaderClick(sender, _sort, LVTelevision, "#CCCCCC");
private void LVMinorColumnHeader_Click(object sender, RoutedEventArgs e) => _lvMinor = Functions.ListViewColumnHeaderClick(sender, _lvMinor, LVMinor, "#CCCCCC");