Vb.net FlexGrid树未为整个网格创建节点

Vb.net FlexGrid树未为整个网格创建节点,vb.net,treeview,nodes,c1flexgrid,Vb.net,Treeview,Nodes,C1flexgrid,我有一个flexgrid由一个datatable填充。然后,我将按指定列进行分组,并添加节点以使用treeview属性。例如,问题是,如果我有1000条记录,并将其拆分为20个组,那么在最后一个节点中添加了20条记录,因为它不再关注1000行,包括它创建的节点,这意味着它认为网格中有1020行。 下面是我用来创建节点的函数: Private Sub GroupBy(ByVal colName As String, ByVal level As Integer) Dim curre

我有一个flexgrid由一个datatable填充。然后,我将按指定列进行分组,并添加节点以使用treeview属性。例如,问题是,如果我有1000条记录,并将其拆分为20个组,那么在最后一个节点中添加了20条记录,因为它不再关注1000行,包括它创建的节点,这意味着它认为网格中有1020行。 下面是我用来创建节点的函数:

Private Sub GroupBy(ByVal colName As String, ByVal level As Integer)
        Dim current As Object = ""
        For i As Integer = fgResults.Rows.Fixed To _data.Tables("Results").Rows.Count - 1
            If Not fgResults.Rows(i).IsNode Then
                Dim value As Object = fgResults.Item(i, colName).ToString
                If Not Object.Equals(value, current) Then
                    fgResults.Rows.InsertNode(i, level)
                    fgResults.Item(i, colName) = value
                    current = value
                End If
            End If
        Next
    End Sub

colName是我分组所依据的列的名称,level是节点的级别(我在这里总是使用0,因为我只需要一个层)。我想的是,如果有一种方法可以让for循环一直运行到datatable的末尾,那将是最好的解决方案。谢谢你的帮助

经过更多的研究和与一些开发人员的合作,我发现了这个非常简单的解决方案,因此我将在这里发布它,因为我无法在网上找到关于这个主题的很多研究。问题是循环没有到达网格的末尾,因为随着节点的创建,行数增加。解决方案是在之前添加相同的for循环,但在放置节点的任何位置都使用递增的计数器。这样,当我运行for循环来放置节点时,我将计数器添加到我正在循环的行数中,以便它循环整个过程。这个计数器看起来像这样,正好放在我上面发布的for循环之前

        For i As Integer = fgResults.Rows.Fixed To _data.Tables("Results").Rows.Count - 1
            If Not fgResults.Rows(i).IsNode Then
                Dim value As Object = fgResults.Item(i, colName).ToString
                If Not Object.Equals(value, current) Then
                    count += 1
                    current = value
                End If
            End If
        Next
然后,我修改了上面的for循环以包含此计数:
对于i As Integer=1到_data.Tables(“Results”).Rows.Count+Count