private void cbGroupFilter_SelectedIndexChanged(object sender, EventArgs e) { var cbGroups = sender as ComboBox; // Reset column sorting listTelephones.ListViewItemSorter = null; // Reset sort icon presentation for (int i = 0; i < listTelephones.Columns.Count; i++) { ListViewColumnHeaderHelper.SetColumnHeaderSortIcon(listTelephones, i, SortOrder.None); } if (cbGroups.SelectedIndex == 0) { // Show all selected listTelephones.ResetFilterItems(_xmlWrapper.TelephoneItems); } else { string groupName = cbGroups.Items[cbGroups.SelectedIndex].ToString(); listTelephones.FilterItems(_xmlWrapper.TelephoneItems, groupName); } UpdateStatusBarInfo(); }
private void listTelephones_ColumnClick(object sender, ColumnClickEventArgs e) { var listView = sender as ListView; var sorter = listView.ListViewItemSorter as ListViewColumnSorter; if (sorter == null) { sorter = new ListViewColumnSorter(e.Column); listView.ListViewItemSorter = sorter; } // Determine if clicked column is already the column that is being sorted if (e.Column == sorter.SortColumn) { // Reverse the current sort direction for this column if (sorter.SortOrder == SortOrder.Ascending) { sorter.SortOrder = SortOrder.Descending; } else { sorter.SortOrder = SortOrder.Ascending; } } else { // Set the column number that is to be sorted; default to ascending sorter.SortColumn = e.Column; sorter.SortOrder = SortOrder.Ascending; } // Set sort icon presentation for (int i = 0; i < listView.Columns.Count; i++) { ListViewColumnHeaderHelper.SetColumnHeaderSortIcon(listView, i, i == sorter.SortColumn ? sorter.SortOrder : SortOrder.None); } // Perform the sort with these new sort options. listView.Sort(); }