微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#ObjectListView-FastObjectListView自定义排序问题

如何解决C#ObjectListView-FastObjectListView自定义排序问题

我正在尝试使用FastObjectListView进行自定义排序。 我按照用户grammarian的描述设置了VirtualListDataSource和类似的对象

m_olvResults.VirtualListDataSource = new OwnSortingDataSource(m_olvResults);
m_olvResults.Setobjects(psdResults.ResultList);

这些是相应的类:

public class PSDResultEntryComparer : IComparer
{
    public PSDResultEntryComparer()
    {
    }

    public int Compare(object x,object y)
    {
        // perform you desired comparison depending on the _Order
        if (x is PSDResultEntry && y is PSDResultEntry)
        {
            PSDResultEntry entry1 = x as PSDResultEntry;
            PSDResultEntry entry2 = y as PSDResultEntry;

            if (entry1.FieldNo[0] == entry2.FieldNo[0])
            {
                int val1 = int.Parse(entry1.FieldNo.Remove(0,1));
                int val2 = int.Parse(entry2.FieldNo.Remove(0,1));

                if (val1 == val2)
                {
                    return 0;
                }
                if (val1 < val2)
                {
                    return -1;
                }

                return 1;
            }
            else
            {
                return string.Compare(entry1.FieldNo,entry2.FieldNo);
            }
        }
        else
        {
            return 0;
        }
    }
}

public class OwnSortingDataSource : FastObjectListDataSource
{
    public OwnSortingDataSource(FastObjectListView lv) : base(lv)
    {
        listView.ListViewItemSorter = new PSDResultEntryComparer();
    }

    public override void Sort(OLVColumn column,SortOrder sortOrder)
    {
        if (column.Index == 0)
        {
            ArrayList objects = (ArrayList)this.listView.Objects;
            objects.sort(new PSDResultEntryComparer());
            RebuildindexMap();
        }
        else
        {
            base.sort(column,sortOrder);
            RebuildindexMap();
        }
    }
}

当我调试时,我看到“ objects.sort(new PSDResultEntryComparer())” 工作正常,但列表视图中显示的数据未更新。

有什么想法我在这里想念的吗?

最诚挚的问候,

亚历山大

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。