Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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 将行添加到具有子元素的数据网格_Vb.net_Datagrid - Fatal编程技术网

Vb.net 将行添加到具有子元素的数据网格

Vb.net 将行添加到具有子元素的数据网格,vb.net,datagrid,Vb.net,Datagrid,我是vb.net的新手 所以我要做的是将行添加到数据网格中。我已经能够通过添加以下内容来实现这一点: Public Class X Public Sub Button_Click(sender As Object, e As RoutedEventArgs) InitializeComponent() Dim items As New List(Of reportLine)() listview1.ColumnWidth = New DataGridLength(24

我是vb.net的新手

所以我要做的是将行添加到数据网格中。我已经能够通过添加以下内容来实现这一点:

Public Class X

 Public Sub Button_Click(sender As Object, e As RoutedEventArgs)
    InitializeComponent()
    Dim items As New List(Of reportLine)()
    listview1.ColumnWidth = New DataGridLength(240)
    items.Add(New reportLine() With {.Items = "Total Project Funding", .Amount = 42.0})
    items.Add(New reportLine() With {.Items = "Sammy Doe", .Amount = 7})
    items.Add(New reportLine() With {.Items = "Sammy Doe", .Amount = 7})
    items.Add(New reportLine() With {.Items = "Sammy Doe", .Amount = 7})
    items.Add(New reportLine() With {.Items = "Sammy Doe", .Amount = 99})
    datagrid1.ItemsSource = items
End Sub
Private Sub rptLine(ByRef rptItem As String, ByRef rptAmount As Double)
    Dim items As New List(Of reportLine)()
    items.Add(New reportLine() With {.Items = rptItem, .Amount = rptAmount})
    datagrid1.ItemsSource = items
End Sub

End Class

Public Class reportLine
  Public Property Items() As String

  Public Property Amount() As Integer

End Class
我想做的是能够像这样在按钮点击事件中添加一行

rptLine("Report Line", 450)
rptLine("Report Line", 450)
rptLine("Report Line", 450)
我意识到每次调用rptLine子函数时,它都在创建Itemsource的一个新实例。我已经尝试了很多方法来实现这一点,但每次都遇到了障碍


提前感谢您的帮助。

您使用的是列表视图吗

Private Sub rptLine(ByRef rptItem As String, ByRef rptAmount As Double)
    Dim listItem As ListViewItem = ListView1.Items.Add(rptItem)
    listItem.Subitems.Add(rptAmount)
End Sub
您正在使用DataGridView吗

Private Sub rptLine(ByRef rptItem As String, ByRef rptAmount As Double)
    Dim row As DataGridViewRow = DataGridView1.Rows(DataGridView1.Rows.Add())
    With row
        .Cells(column1Name.Name).Value = rptItems
        .Cells(column2Name.Name).Value = rptAmount
    End With
End Sub

您可以进一步简化这些内容,但这应该会给出基本的想法。

您使用的是什么版本的Visual Studio?您的对象名为ListView1,但您谈论的是GridView,我在VS2010中没有看到它。另外,你说你已经尝试了很多事情,但请分享更多细节——分享你的研究对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!也看到有这么多至少是值得怀疑的,很难知道从哪里开始。但我会尝试:a)这是WinForms还是WebForms?b) 为什么是Datagrid与DataGridView?c) 它真的是DataGrid还是ListView?d) 为什么单击事件(请参见“a”)中的
初始化组件
?e) 为什么所有的列表数组(包含更多的数组?)f都需要编译或运行呢?