vb.net - 如何将 DataGridView 绑定(bind)到自定义类列表

标签 vb.net winforms data-binding datagridview vb.net-2010

我有一个使用 TableAdapter 构建的自定义类列表.

我想将这些添加到 DataGridView仅绑定(bind)某些列。

我试过下面的代码来填充和绑定(bind)数据:

lAllBookings = (From r As DataRow In BookingsTableAdapter1.GetDataWithItems().Rows
                        Select New Booking With {.bookingID = r.Item("BookingID"), _
                                                 .itemID = r.Item("ItemID"), _
                                                 .bookedOutDate = r.Field(Of DateTime?)("BookedOutDate"), _
                                                 .bookedInDate = r.Field(Of DateTime?)("BookedInDate"), _
                                                 .identType = r.Item("IdentType"), _
                                                 .identString = r.Item("IdentString"), _
                                                 .image = r.Item("Image"), _
                                                 .complete = r.Item("Complete"), _
                                                 .notes = r.Item("Notes"), _
                                                 .itemName = r.Item("ItemName"), _
                                                 .itemBC = r.Item("ItemBarcode")}).ToList



        dgvBookings.Columns("BookingID").DataPropertyName = "bookingID"
        dgvBookings.Columns("ItemIdent").DataPropertyName = "itemName"
        dgvBookings.Columns("BookedOut").DataPropertyName = "bookedOutDate"
        dgvBookings.Columns("IdentString").DataPropertyName = "identString"


        dgvBookings.DataSource = lAllBookings

现在,当我这样做时,我得到了正确的行数,但所有字段都是空白的。

我已经完成了一些关于 SO 的问题和一些教程,但它们所做的事情似乎都与我需要的略有不同。

有什么方法可以填写 DataGridView使用我的元素 list ? 我宁愿避免使用 DataSet如果可以的话,因为我已经在此 List<Of Class> 上构建了很多其他代码类型。

编辑 - 这是类 Booking声明:

Public Class Booking

    Public bookingID As Integer
    Public itemID As Integer
    Public itemName As String
    Public itemBC As String

    Public identType As Short
    Public identString As String
    Public image As Byte()
    Public complete As Boolean
    Public notes As String

    Public bookedInDate As DateTime?
    Public bookedOutDate As DateTime?

End Class

最佳答案

我知道你真的迟到了,但也许它可以帮助别人。

我遇到了和你一样的问题,但使用的是 vb.net。

最后我找到了解决方案:您的类没有公开属性而是公开变量。绑定(bind)系统查找属性但找不到它们,因此您得到空行。

尝试通过添加 {get; 来完成你的类(class)设置;(如果使用 vb.net,则为 Property 属性),一切都会正常工作。

希望对您有所帮助。

关于vb.net - 如何将 DataGridView 绑定(bind)到自定义类列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056293/

相关文章:

vb.net - 文本编辑器加载多个大文本文件 - 多线程

winforms - 当 gridview is allowedit = false 时,如何在 GridView 中启用对新插入行的编辑?

c# - 绑定(bind) Listview 的 GridView 的 DataGridCell 的 TextBlock

c# - 使用 C# 将列表传递给 <%# Eval ("") %>

jQuery 绑定(bind)鼠标滚轮

c# - 在 Silverlight 中检查互联网连接

vb.net - 有没有办法通过 VB .NET 获取图像文件并使其背景透明?

.net - 通过拖放 (WPF) 显示提示文本

c# - 同步 TableLayoutPanel

c# - 如何在要打印的收据上添加选定的 ListBox 项目及其价格?