지난 두 시간 동안 인터넷상의 다른 곳에서도 귀하의 질문을 살펴 보았습니다. 문제가있는 곳에서는 해결책을 찾지 못했습니다. 그렇지 않으면 적어도 이해할 수 없었습니다. 이것이 불필요하게 보이거나 미친 듯이 보이면 미리 사과드립니다. 명확히하자 : 문제는 내가 어떻게 접근법을 올바르게 구현하지 못한다는 것이지만, 어떻게해야하는지 이해할 수있다.DataGridview에 사용자 지정 개체 목록을 바인딩 할 수없는 이유는 무엇입니까?
약속을 나타내는 사용자 지정 개체를 표시 할 양식에 gridview가 있습니다. 내 약속 객체에 바인딩하고 싶습니다 (성공했습니다). 그러나 아래의 방법은 올바른 것처럼 보이지만 약속 개체를 그리드에 표시하지 않습니다. 또한 바인딩 소스의 내부 목록에 개체를 직접 추가하면 GridList의 데이터 소스를 바인딩 목록에 직접 설정하는 것처럼 그리드에 표시 할 수 없습니다. 나는 내가 뭘 잘못하고 있는지 전혀 모른다! 제발 도와 줘,이게 전혀 말이되지 않는 것 같아서 나를 미치게합니다.
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)는 열거자를 통해 어댑터의 항목 (약속) 컬렉션을 반환합니다. 나는 이것을 시험해보고 열거자가 항목을 돌려 주므로 문제가 이것이 아니라는 것을 알았다.
나는 노력이 원래 같은 결과. 문제는 내 개체 필드가 속성 메서드로 선언되지 않았습니다. 감사. – Patternz