大家好,我是季劼,今天我在寫ListView排列的時候,研究了一下,覺得這個可以簡單地分享一下,讓大家快速地學會,那就開始吧!


首先,

就拿我的例子來給大家看好了

image

我需要的就是根據ID排列我的ListViewItems

每個新輸入進來的廠商都有自己決定的ID

所以我需要每次新增都再一次排列!

 


那我就要使用到ListView.Sort()這個function

但是我發現使用了完全沒反應!! 為甚麼呢?

因為他需要指定ListView.ListViewItemSorter

也就是我們需要新創一個class!!

 


所以我在我的class中創建了一個private class

因為我只有要在這裡比較,在其他class中就不用看到這個class了!

image

並將它繼承System.Collections.IComparer 介面!

實作他! 在這裡就可以根據我需要比較的東西任意地變更比較方式!

例如: 我可以根據名字的長度或根據字母大小回傳數值

        如果回傳大於1的數字 -> 表示x > y

        回傳小於1表示x<=y

        我這邊是要比較ID 所以是在SubItems[0]的地方


最後的最後就可以排列了!!

image

新增完新的物件後

賦予我創建的Comparer

呼叫Sort() Function

完成!!


 

arrow
arrow
    文章標籤
    C# WindowsForm ListView
    全站熱搜
    創作者介紹
    創作者 林季劼JIJIELIN 的頭像
    林季劼JIJIELIN

    季劼在這邊 JIJIE Here

    林季劼JIJIELIN 發表在 痞客邦 留言(0) 人氣()