/// <summary> /// call this from column click. /// </summary> /// <param name="lvs">an instance of listviewsorter</param> /// <param name="lv">The lv.</param> /// <param name="column">The column.</param> /// <param name="forceorder">if set to a value, will sort by that all the time, otherwise will sort as normal</param> public static void ColumnSort(ListViewSorter lvs, ListView lv, int column, SortOrder? forceorder = null) { try { lv.ListViewItemSorter = lvs; if (!(lv.ListViewItemSorter is ListViewSorter)) return; lvs = (ListViewSorter) lv.ListViewItemSorter; } catch (Exception) { return; } if (forceorder != null) { lv.Sorting = (SortOrder) forceorder; } else { //invert sorting lv.Sorting = lv.Sorting == SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending; } lvs.ByColumn = column; lv.Sort(); }
/// <summary> /// call this from column click. /// </summary> /// <param name="lvs">an instance of listviewsorter</param> /// <param name="lv">The lv.</param> /// <param name="column">The column.</param> /// <param name="forceorder">if set to a value, will sort by that all the time, otherwise will sort as normal</param> public static void ColumnSort(ListViewSorter lvs, ListView lv, int column, SortOrder?forceorder = null) { try { lv.ListViewItemSorter = lvs; if (!(lv.ListViewItemSorter is ListViewSorter)) { return; } lvs = (ListViewSorter)lv.ListViewItemSorter; } catch (Exception) { return; } if (forceorder != null) { lv.Sorting = (SortOrder)forceorder; } else { //invert sorting lv.Sorting = lv.Sorting == SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending; } lvs.ByColumn = column; lv.Sort(); }
private void Stats_Load(object sender, EventArgs e) { statsLV.Items.Clear(); totalnew.Text = "Total Unique Colours for Custom:" + Beads.GetUniqueCount(b,false); totalold.Text = "Total Unique Colours for Original:" + Beads.GetUniqueCount(b,true); totalbeadcount.Text = "Total Beads:" + b.width*b.height; foreach(var kvp in b.MappedPalette) { var lvi = new ListViewItem(); var name = DictionaryExtras.GetKeyByValue(Beads.AllBeadColours, kvp.Value); if (name==null) continue; lvi.Text = name; lvi.BackColor = kvp.Value; lvi.ForeColor = ColorExtras.GetNegativeColour(kvp.Value); lvi.SubItems.Add(MatrixOps.Count(b.BeadColours, kvp.Value).ToString()); statsLV.Items.Add(lvi); } lvs = new ListViewSorter(); ListViewSorter.ColumnSort(lvs,statsLV,1,SortOrder.Descending); }