I have been searching for what feels like all day but cannot seem to solve this so i thought i would ask Myself.
I have a DataTable constructed like so:
Dim dtAttendanceTimes As New DataTable
Dim dcEmployee As New DataColumn With {
.ColumnName = "Employee",
.DataType = GetType(String)}
dtAttendanceTimes.Columns.Add(dcEmployee)
Dim dcDate As New DataColumn With {
.ColumnName = "Date",
.DataType = GetType(String)}
dtAttendanceTimes.Columns.Add(dcDate)
Dim dcClockIn As New DataColumn With {
.ColumnName = "Clock In",
.DataType = GetType(String)}
dtAttendanceTimes.Columns.Add(dcClockIn)
Dim dcClockType As New DataColumn With {
.ColumnName = "Type",
.DataType = GetType(String)}
dtAttendanceTimes.Columns.Add(dcClockType)
Dim dcApproved As New DataColumn With {
.ColumnName = "Approved",
.DataType = GetType(String)}
dtAttendanceTimes.Columns.Add(dcApproved)
For Each drAttendaceTime As DataRow In AttendancetimesAdaptor.GetDataByEmployeeID(intEmployeeID).Rows
dtAttendanceTimes.Rows.Add(drAttendaceTime("fkEmployee"), drAttendaceTime("strDate"), drAttendaceTime("strClockIn"), drAttendaceTime("strType"), drAttendaceTime("strApproved"))
Next
dgAttendanceTimes.ItemsSource = dtAttendanceTimes.DefaultView
And in XAML i construct my DataGrid like so:
<DataGrid x:Name="dgAttendanceTimes" AutoGenerateColumns="False" Style="{StaticResource MyDataGridStyle}" Grid.Column="1" Grid.Row="1" Grid.RowSpan="3">
<DataGrid.Columns>
<DataGridTextColumn Header="Employee" x:Name="Employee" Width="*" Binding="{Binding Path=Employee}"/>
<DataGridTextColumn Header="Date" x:Name="Date" Width="*" Binding="{Binding Path=Date}"/>
<DataGridTextColumn Header="Clock In" x:Name="ClockIn" Binding="{Binding Path=ClockIn}"/>
<DataGridTextColumn Header="Type" x:Name="Type" Visibility="Hidden" Binding="{Binding Path=Type}"/>
<DataGridTextColumn Header="Approved" x:Name="Approved" Binding="{Binding Path=Approved}"/>
</DataGrid.Columns>
</DataGrid>
Yet when i run it i just get blank rows, i get the right amount of rows just all blank and no columns?
Any help is appreciated.
You can simply add column in DataTable like below:
With dt.Columns
.Add("SrNo", GetType(Integer))
.Add("Name", GetType(String))
End With
And in XAML add
ItemsSource="{Binding}"
Now before adding row to datatable add below line:
dg.ItemSource= dt.DefaultView()
Now add rows to datatable and it will reflect to your datagrid automatically.