PDA

View Full Version : سوال: مرتب سازی در listview



alim77
پنج شنبه 28 آذر 1392, 21:20 عصر
با سلام من تو برنامم از این کد برای مرتب سازی استفاده کردم ولی اشتبا جواب میده
;listView1.Sorting = System.Windows.Forms.SortOrder.Ascending
;()listView1.Sort
جوابش:
1
1
1
1
10
2
2
2
2
28

abbas.oveissi
جمعه 29 آذر 1392, 01:39 صبح
با سلام من تو برنامم از این کد برای مرتب سازی استفاده کردم ولی اشتبا جواب میده
;listView1.Sorting = System.Windows.Forms.SortOrder.Ascending
;()listView1.Sort
جوابش:
1
1
1
1
10
2
2
2
2
28
اگر اشتباه نکنم listView براساس اینکه اینا Int هستند،مرتب سازی نکرده.یعنی به عنوان String در نظر گرفته و مرتب سازی رو انجام داده.
اول حرف های اول رو چک کرده و مرتب کرده ،بعد حالا اونا که حرف های اولشون یکی بوده،حرف های دومشون رو مقایسه کرده.

plus
جمعه 29 آذر 1392, 06:01 صبح
همونطور که گفتن پیشفرض مرتب سازی روی Text هست.برای Custom کردن مرتب سازی ستون های عددی، باید IComparer رو پیاده سازی کنید و یک شی از کلاس پیاده سازی کننده بسازید و به مشخصه ListViewItemSorter مربوط به ListView بدین و...
اینجا رو نگاه (http://support.microsoft.com/kb/319401)کنید.البته این مثال همه کارها رو کرده جز اینکه باز هم مرتب سازی بر اساس متن هست.برای مرتب سازی بر اساس عدد باید موقع فراخوانی ObjectCompare.Compare متن ستون رو به عدد تبدیل کنید.

alim77
شنبه 30 آذر 1392, 16:56 عصر
سلام
من همین مثالی که گفتین و برای مرتب سازی متن نوشتم بدون error اجرا میشه ولی جواب نمیده