比方说,我有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的食谱对我没有帮助。
你有没有怎么可以这样做的例子吗?
实施例使用自定义分类器:
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的。 你可以看看这个关于如何访问底层模型对象。