如何在数据网格中添加行


Private Property DataTable As DataTable
Public Property DataView As DataView
Public Sub New()
InitializeComponent()
DataTable = New DataTable()
DataTable.Columns.Add("Test")
DataView = DataTable.DefaultView
DataContext = Me
Dim dr As DataRow = DataTable.NewRow()
dr("Test") = "Wert1"
DataTable.Rows.Add(dr)
End Sub
<DataGrid ItemsSource="{Binding Path=DataView}"/>

以上代码正常工作。但是当我在代码中替换dr时显示错误信息输入图片描述

下面是我的代码

Private Property DataTable As DataTable
Public Property DataView As New DataView
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
InitializeComponent()
Dim startDate As Date = CType(dtpStartDate.SelectedDate, DateTime)
Dim endDate As Date = CType(dtpEndDate.SelectedDate, DateTime)
While startDate <= endDate
Dim NewColumn As New DataGridTextColumn()
NewColumn.Header = startDate.ToShortDateString()
dgTemplate.Columns.Add(NewColumn)
startDate = startDate.AddDays(1)
DataView = DataTable.DefaultView
DataContext = Me
Dim dr As DataRow = DataTable.NewRow()
dr(NewColumn) = "Wert1"
DataTable.Rows.Add(dr)
End While
End Sub

谁能建议解决这个问题?

Datarow构造函数不能接受列对象作为参数。

使用列。标题属性指定列。

Private Property DataTable As DataTable
Public Property DataView As New DataView
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
InitializeComponent()
Dim startDate As Date = CType(dtpStartDate.SelectedDate, DateTime)
Dim endDate As Date = CType(dtpEndDate.SelectedDate, DateTime)
While startDate <= endDate
Dim NewColumn As New DataGridTextColumn()
NewColumn.Header = startDate.ToShortDateString()
dgTemplate.Columns.Add(NewColumn)
startDate = startDate.AddDays(1)
DataView = DataTable.DefaultView
DataContext = Me
Dim dr As DataRow = DataTable.NewRow()
dr(NewColumn.Header) = "Wert1" '<----------------------------
DataTable.Rows.Add(dr)
End While
End Sub

信息https://learn.microsoft.com/en - us/dotnet/api/system.data.datarow. ctor?view=net - 6.0

最新更新