我已经阅读了一些有关此问题的帖子"错误"但我无法弄清楚如何解决我的问题。
我有一个看起来像这样的课程:
Public Class Person
Public Property Name As String
Public Property PhoneNumber As string
Public Property Age As Integer
Public sub New(ByVal Values As String())
Me.Name = Values(0)
Me.PhoneNumber = Values(1)
Me.Age = Convert.ToInt32(Values(2))
End Sub
End Class
我从分号分隔文件中获取数据,然后通过循环此文件并以分号分割来创建Person对象列表。喜欢这个
Dim PersonsList As New List(Of Person)
For Each line in textfile..........
PersonsList.Add(New Person(line.Split(";")))
Next
列表完成后,我告诉我的DataGridView DataSource
是PersonsList
。
这就像一个魅力,但我无法对列进行排序。 我发现许多this post(其中类值不是属性,我的属性)并尝试转换功能,这确实在我的情况下有效。创建了适量的行,但所有列都是空白的。
我错过了什么?
答案 0 :(得分:1)
如果您使用数据表作为数据源,则会自动启用列排序,您可以按任意列对数据进行排序:
Dim dt As New DataTable
dt.Columns.AddRange(
{
New DataColumn("Name"),
New DataColumn("Phone"),
New DataColumn("Age")
})
For Each s As String In IO.File.ReadAllLines("textfile1.txt")
Dim temprow As DataRow = dt.NewRow
temprow.ItemArray = s.Split(";"c)
dt.Rows.Add(temprow)
Next
DataGridView1.DataSource = dt