Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.Net ListViewItemComparer无排序器_Vb.net - Fatal编程技术网

VB.Net ListViewItemComparer无排序器

VB.Net ListViewItemComparer无排序器,vb.net,Vb.net,我使用的是Visual Studio 2017,基于文档,类ListViewItemComparer在实例化ListViewItemComparer类时必须接受列索引和排序顺序作为参数。但是当我尝试时,它只有两种可能的方法来实例化这个类。第一个是无参数构造函数,第二个是使用列索引 [已解决] 我从实现的IComparer接口更新了覆盖的比较函数。并创建了另一个接受排序顺序的构造函数方法 Public Sub New(column As Integer, order As Integer)

我使用的是Visual Studio 2017,基于文档,类
ListViewItemComparer
在实例化
ListViewItemComparer
类时必须接受列索引和排序顺序作为参数。但是当我尝试时,它只有两种可能的方法来实例化这个类。第一个是无参数构造函数,第二个是使用列索引

[已解决]
我从实现的
IComparer
接口更新了覆盖的比较函数。并创建了另一个接受排序顺序的构造函数方法

Public Sub New(column As Integer, order As Integer)
        col = column
        ord = order
    End Sub

Public Function Compare(x As Object, y As Object) As Integer _
                            Implements System.Collections.IComparer.Compare
        Dim returnVal As Integer = -1
        If (ord = 1) Then
            returnVal = [String].Compare(CType(x,
                        ListViewItem).SubItems(col).Text,
                        CType(y, ListViewItem).SubItems(col).Text)
        Else
            returnVal = [String].Compare(CType(y,
                        ListViewItem).SubItems(col).Text,
                        CType(x, ListViewItem).SubItems(col).Text)
        End If

        Return returnVal
    End Function

我所能找到的只是类的自定义定义,它似乎没有在框架中实现。您可以链接到您阅读的文档文章吗?
ListViewItemSorter
属性是type
IComparer
。这是一个接口,不是一个类。您可以创建自己的类来实现该接口,并提供您需要排序的任何功能。该属性的文档包括一个代码示例,该示例将根据列进行比较,因此如果这是您想要的,那么只需复制该示例即可。您可以先对数据进行排序吗?比如,在Select中使用Order By子句,或者如果您的数据在一个列表(T)中,则按T的特定属性进行排序。初始排序后,将内置组用于其他列。谢谢@VISUALVENCENT,我只是忘记了我将其创建为实现IComparer接口的自定义类,这是一个旧代码,这就是为什么我认为
ListViewItemComparer
不是自定义代码。谢谢谢谢@jmcilhinney@Mary我不想仅仅因为某些排序功能而重新提交查询。顺便说一下,谢谢你的主意。