这段时间做项目用到了datagrid,客户要求datagrid中的某一列如果有相同的,就要把这一列中相同的行合并为一行。我在网上找到了这样的函数,借鉴过来自己修改了一下。
具体的函数如下:
Private Function GroupRows(ByVal dataGrid As DataGrid, ByVal cellNum As Integer)
Dim i As Integer = 0
Dim j As Integer
Dim cellSpanNum As Integer = 1
While (i < dataGrid.Items.Count - 1)
Dim dgItem As DataGridItem = dataGrid.Items(i)
For j = i + 1 To (dataGrid.Items.Count - 1)
Dim dgItemNext As DataGridItem = dataGrid.Items(j)
If (dgItem.Cells(cellNum).Text.Equals(dgItemNext.Cells(cellNum).Text)) Then
dgItemNext.Cells(cellNum).Visible = False
cellSpanNum += 1
i += 1
Else
dgItem.Cells(cellNum).RowSpan = cellSpanNu