2 using System.Drawing;
\r
3 using System.Windows.Forms;
\r
4 using NaGet.Packages;
\r
5 using NaGet.Packages.Install;
\r
7 using System.Collections.Generic;
\r
9 namespace AppliStation.Util
\r
12 /// ListViewのソートをカプセル化するためのクラス
\r
14 class ListViewItemSortComparer : System.Collections.IComparer
\r
16 SortOrder order = SortOrder.Ascending;
\r
18 ColumnHeader column = null;
\r
23 public ListViewItemSortComparer()
\r
30 public SortOrder Order {
\r
31 get { return order; }
\r
32 set { order = value; }
\r
36 /// 選択しているコラムを取得・設定する。
\r
37 /// nullを設定するとソートが解除される。
\r
39 public ColumnHeader Column {
\r
40 get { return column; }
\r
44 if (value == null || value.Index < 0) {
\r
45 order = SortOrder.None;
\r
51 /// 選択しているコラムのインデックスを返す。選択されていないときは-1を返す。
\r
53 public int ColumnIndex {
\r
55 return (column != null)? column.Index : -1;
\r
59 public int Compare(object x, object y)
\r
61 int columnIndex = this.ColumnIndex;
\r
64 if (columnIndex >= 0 && order != SortOrder.None) {
\r
65 ListViewItem itemx = (ListViewItem) x;
\r
66 ListViewItem itemy = (ListViewItem) y;
\r
68 result = string.Compare(itemx.SubItems[columnIndex].Text,
\r
69 itemy.SubItems[columnIndex].Text);
\r
71 if (order == SortOrder.Descending) {
\r