Custom Sorting with ObjectListView

Deadly 提交于 2019-12-03 21:56:53

问题


Let's say I have an objectListView with 3 columns

ArticleNumber | OrderNumber | Status
 8080         | 123.456.789 | Delivered
 80           | 456.789.101 | Pending
 901          | 11.111.111  | Delivered

With the Automatic sorting, the smaller article number would go under the bigger article number, so it would either sort 8080, 80, 901 or 901, 80, 8080 but I want that the smallest number would be on top.

On OrderNumber the same.

And Status wouldn't work. On, it just sorts the ArticleNumber when I press the ColumnHeader so I'd like to sort the Status depending on the text.

I think I need a CustomSorter for that task but I couldn't find how to use it and I couldn't find a good example, the cookbook of OLV didn't help me.

Do you have an Example for me how this could be done?


回答1:


Example using a custom sorter:

MyOlv.CustomSorter = delegate(OLVColumn column, SortOrder order) {
    // check which column is about to be sorted and set your custom comparer
    if (column == ArticleNumber) {
        MyOlv.ListViewItemSorter = new ArticleNumberComparer(order);
    }
};          

class ArticleNumberComparer : IComparer {
    SortOrder _Order;

    public ArticleNumberComparer(SortOrder order) {
        _Order = order;
    }

    public int Compare(object x, object y) {
         // perform you desired comparison depending on the _Order
    }
}

Note that x and y in Compare() are of type ListViewItem. You can take a look at this on how to access the underlying model objects.



来源:https://stackoverflow.com/questions/13634041/custom-sorting-with-objectlistview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!