Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 private void LVContactsColumnHeader_Click(object sender, RoutedEventArgs e) => _sort =
     Functions.ListViewColumnHeaderClick(sender, _sort, LVContacts, "#CCCCCC");
Ejemplo n.º 3
0
 private void GridViewColumnHeader_Click(object sender, RoutedEventArgs e) => _sort = Functions.ListViewColumnHeaderClick(sender, _sort, LVTelevision, "#CCCCCC");
Ejemplo n.º 4
0
 private void LVMinorColumnHeader_Click(object sender, RoutedEventArgs e) => _lvMinor = Functions.ListViewColumnHeaderClick(sender, _lvMinor, LVMinor, "#CCCCCC");