リストビューを使用して2列のデータテーブルを作成していますが、データテーブルを2番目の列で並べ替える必要があります。
次のようになります。
名前-ポイント
------------------
ジョン-10
ピーター-14
マーカス-9
では、ポイントで並べ替えるにはどうすればよいですか?
解決しました!!
private class PointsComparer : IComparer
{
private const int pointsColumnIndex = 1;
public int Compare(object x, object y)
{
ListViewItem listX = (ListViewItem)x;
ListViewItem listY = (ListViewItem)y;
// Convert column text to numbers before comparing.
// If the conversion fails, just use the value 0.
decimal listXVal, listYVal;
try
{
listXVal = Decimal.Parse(listX.SubItems[pointsColumnIndex].Text);
}
catch
{
listXVal = 0;
}
try
{
listYVal = Decimal.Parse(listY.SubItems[pointsColumnIndex].Text);
}
catch
{
listYVal = 0;
}
return (-Decimal.Compare(listXVal, listYVal));
}
}
これは私にとって魅力として働きました。