使用结构化数组填充数据网格视图时出现问题



当我运行代码时,使用 csv 日志文件中的数据填充数组,DataGridView 填充空行。

我尝试只使用 2 维数组,我得到了相同的结果。 我怀疑我需要以某种方式"映射"数据......或?

这是我目前正在尝试的:
第一部分位于模块...中,即表单代码中的子

Public Structure DataBlock
    Public Data As String()
    Public Property xData As String()
        Get
            Return Data
        End Get
        Set(ByVal value As String())
            Data = value
        End Set
    End Property
End Structure
Public DataBlocks(1) As DataBlock
' end of module code
' start of form code
Public Sub test(path)
    Dim i As Integer
    LogData = IO.File.ReadAllLines(path)
    ReDim DataBlocks(UBound(LogData))
    For i = 0 To UBound(LogData)
        DataBlocks(i) = New DataBlock With {.xData = Split(LogData(i), ",")}
    Next
    DataGridView1.DataSource = DataBlocks
End Sub

期待填充表,我看到了其他有效的示例,但这些示例不使用结构中带有数组的结构化数组。 我可以将数组分解为 8 个部分(这是我对文件的列数(,但我还不愿意分离。

,这有点笨拙,但它有效。我将结构更改为类。似乎 DataGridView 无法将数组作为列类型处理,因此我将数组更改为字符串以进行显示。

Public Class DataBlock
    Private Data As String()
    Public ReadOnly Property xDataOut As String
        Get
            Return String.Join(", ", Data)
        End Get
    End Property
    Public WriteOnly Property xDataIn As String()
        Set(value As String())
            Data = value
        End Set
    End Property
    Public Sub New(sArray As String())
        xDataIn = sArray
    End Sub
End Class
Public DataBlocks As New List(Of DataBlock)
Public Sub test(path As String)
    Dim Lines = IO.File.ReadAllLines(path)
    For Each line In Lines
        DataBlocks.Add(New DataBlock(line.Split(","c)))
    Next
    DataGridView1.DataSource = DataBlocks
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    test("LogData.txt")
End Sub

最新更新