문제

제목이 말했듯이, 나는 DataGridView에서 콤보 박스 열을 채우려고합니다.

지금까지 내가 가지고있는 것은 다음과 같습니다.

Dim lc As System.Web.UI.WebControls.ListItemCollection = _
    DataAccess.Part.GetListItems()

dgvcboPart.DataSource = lc

' This is a standalone combo box and it works ok
cboTest.DataSource = lc

내가 놓친 것이 무엇인지에 대한 제안이 있습니까?

감사합니다 Tony W.

도움이 되었습니까?

해결책

먼저 컬렉션을 BindingSource에 바인딩 한 다음 BindingSource를 DatagridView에 추가하는 것이 좋습니다 (따라서 위치를 알고 있습니다).

그러나 comboboxcell의 결합은 거의 간단해야합니다.

두 개의 열 ID와 이름이 포함 된 데이터 가능한 tblcurrency가 있다고 가정 해 봅시다. 당신은 이것을 당신의 열에 바인딩해야합니다 (나는 당신의 datagridViewColumn의 열 0 ist라고 가정합니다).

     dgvcboPart.Columns(0).DataSource = tblCurrency
     dgvcboPart.Columns(0).ValueMember = "Id"
     dgvcboPart.Columns(0).DisplayMember = "Name"

그런 다음 DataPropertyName을 데이터 소스의 속성으로 설정할 수 있습니다.

     dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"

Carful, tblcurrency.id 및 currency_id는 동일한 유형이어야하며 (int32 및 uint32가 작동하지 않음) Currency_id가 tblcurrency에 있지 않은 값이 있으면 전체 스택 트레이스가있는 불쾌한 메시지 상자를 얻을 수 있습니다 (따라서 DataError를 처리해야합니다. 이벤트)

다른 팁

dgvcboPart.DataSource = lc
dgvcboPart.DataBind()

마술이 일어나기 위해 데이터베인트 방법을 호출해야합니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top