CodeProject
The Windows Forms ListView
control doesn't provide column sorting functionality. So if you click on a column in a ListView
Details view, don't expect the items to be sorted by the clicked column. To get this functionality, we'll need to sort the items by the clicked column in the ListView ColumnClick
event. I searched online for “Sortable ListView
” and I found three MSDN articles talking about this: Sort ListView Column in Visual C#, Sorting ListView Items by Column Using Windows Forms, and How to: Sort ListView Items. None of those implementations takes into consideration the type of the column being sorted. That is, they all do string sorting. If you have dates and numbers in your list, then they’ll not be sorted properly. For example, number 2 will be considered greater than 11. Date time 9/9/1400 will be considered greater than 11/11/2020. Below is an implementation that takes into consideration string
, DateTime
, int
and double
types. It can be easily extended to handle more types.
For example, the below list is sorted by the DateTime
field.
Posted in .NET, C#, Uncategorized Tagged: ListView, sort, Sortable, SortableListView, SortByColumn, SortDate, SortDouble, SortInt