与ObjectListView自定义排序(Custom Sorting with ObjectLis

2019-07-04 06:53发布

比方说,我有3列的objectListView

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

随着自动分拣,较小的文章编号,会去下更大的文章编号,所以它要么排序8080,80,901或901,80,8080,但我想,最小的数字将在最前面。

在订单编号相同。

和状态是行不通的。 对了,它只是当我按下的columnHeader排序ArticleNumber所以我想排序取决于文本的状态。

我想我需要为任务CustomSorter,但我找不到如何使用它,我无法找到一个很好的例子,OLV的食谱对我没有帮助。

你有没有怎么可以这样做的例子吗?

Answer 1:

实施例使用自定义分类器:

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
    }
}

注意,在比较X和Y()是类型的ListViewItem的。 你可以看看这个关于如何访问底层模型对象。



文章来源: Custom Sorting with ObjectListView