過去 2 時間、あなたの質問とインターネット上の他の場所を調べましたが、問題の解決策がどこにも見つからないか、少なくとも理解できたとしてもわかりませんでした。これが冗長またはばかげているように見える場合は、事前にお詫び申し上げます。はっきりさせておきますが、問題は、私がどういうわけかアプローチを正しく実装していないということですが、それがどのように行われるべきかを理解しています(または理解していると思います)。
予定を表すカスタム オブジェクトを表示するフォームにグリッドビューがあります。データテーブルではなく予定オブジェクトにバインドしたい (これは成功した)。ただし、以下のアプローチでは、正しいように見えますが、グリッドに予定オブジェクトが表示されません。さらに、オブジェクトを bindingsource の内部リストに直接追加しても、グリッドビューのデータソースを直接 bindinglist に設定した場合と同様に、グリッドに表示されません。私は何が間違っているのか分かりません!助けてください、これはまったく意味がないようで、私を夢中にさせています。
Public Sub DisplayItems()
Dim bindingsource As BindingSource
Dim appointment As ClsAppointment
Dim appointments As System.ComponentModel.BindingList(Of ClsAppointment)
Dim iterator As IEnumerator
appointments = New System.ComponentModel.BindingList(Of ClsAppointment)
bindingsource = New BindingSource
iterator = Items
While iterator.MoveNext '
appointment = iterator.Current
appointments.Add(appointment)
End While
bindingsource.DataSource = appointments
gridview.DataSource = bindingsource
Debug.Print("")
Debug.Print("DisplayItems()...")
Debug.Print("GridView has " & gridview.Rows.Count & " rows")
End Sub
Public Class ClsAppointment
Public FirstName As String
Public LastName As String
Public Day As String
Public [Date] As Date
Public Time As Date
Public Address As String
Public City As String
Public State As String
Public Zip As String
Public Description As String
End Class
================================================== ======================================
注: DisplayItems() はアダプター (ItemEditor) のメソッドであり、簡単にするために表示しないことにしました。別のメソッド (Items) は、列挙子を介してアダプターの項目 (予定) のコレクションを返します。私はこれをテストし、列挙子がアイテムを返すことを知っているので、問題はこれではありません。