32 lines
886 B
C#
32 lines
886 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
|
|
namespace MLV;
|
|
|
|
public class ManagedListViewItemsComparer : IComparer<ManagedListViewItem>
|
|
{
|
|
private bool AtoZ = true;
|
|
|
|
private string subitemId = "";
|
|
|
|
public ManagedListViewItemsComparer(bool AtoZ, string subitemId)
|
|
{
|
|
this.AtoZ = AtoZ;
|
|
this.subitemId = subitemId;
|
|
}
|
|
|
|
public int Compare(ManagedListViewItem x, ManagedListViewItem y)
|
|
{
|
|
if (x.GetSubItemByID(subitemId) != null && y.GetSubItemByID(subitemId) != null)
|
|
{
|
|
if (AtoZ)
|
|
{
|
|
return StringComparer.Create(Thread.CurrentThread.CurrentCulture, ignoreCase: false).Compare(x.GetSubItemByID(subitemId).Text, y.GetSubItemByID(subitemId).Text);
|
|
}
|
|
return -1 * StringComparer.Create(Thread.CurrentThread.CurrentCulture, ignoreCase: false).Compare(x.GetSubItemByID(subitemId).Text, y.GetSubItemByID(subitemId).Text);
|
|
}
|
|
return -1;
|
|
}
|
|
}
|