'How to Add Row in datagrid wpf

  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}"/>

Above this code working properly. But when I am substitute into my code dr is showing error message enter image description here

below is my code

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

can anyone suggest to fix this...



Solution 1:[1]

Datarow constructor cant take column object as an argument.

Use column.header property to specify column.

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

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 DharmanBot