を使用して構築しているカスタム クラスのリストがありますTableAdapter
。
DataGridView
これらを特定の列のみのバインディングに追加したい。
以下のコードを試して、データを埋めてバインドしました。
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
アイテムのリストを使用して入力する方法はありますか? この型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