簡體   English   中英

將DataTable綁定到DataGrid WPF(VB.net)

[英]Binding a DataTable to DataGrid WPF (VB.net)

我一直在尋找整天的感覺,但似乎無法解決這個問題,所以我想我會問自己。

我有一個像這樣構造的數據表:

        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

在XAML中,我像這樣構造DataGrid:

                        <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>

但是,當我運行它時,我只會得到空白行,我會得到正確數量的行,只是全部空白而沒有列?

任何幫助表示贊賞。

您可以簡單地在DataTable中添加列,如下所示:

 With dt.Columns
       .Add("SrNo", GetType(Integer))
       .Add("Name", GetType(String))
  End With

然后在XAML中添加ItemsSource="{Binding}"

現在,在將行添加到數據表之前,添加以下行:

    dg.ItemSource= dt.DefaultView()

現在,將行添加到數據表中,它將自動反映到您的數據網格中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM