Windows 양식 프로젝트에는 여러 콤보 상자가 있습니다. 첫 번째 콤보 상자에는 개체 목록이 포함되어 있습니다. 그런 다음 해당 객체는 첫 번째 항목에서 선택되는 항목에 따라 연속적인 콤보 상자의 데이터 소스로 사용되는 여러 목록을 갖습니다.Windows Forms (VB)에서 데이터 소스를 변경할 때 이러한 콤보 상자가 올바르게 업데이트되지 않습니다.
첫 번째 항목을 선택하면 다른 콤보 상자가 올바르게 업데이트됩니다. 이 항목을 두 번 또는 다른 시간을 변경하면 다른 콤보 상자가 올바르게 업데이트되지 않습니다. 디버깅 할 때 다른 콤보 상자의 데이터 소스가 올바르게 할당되어 있고 항목 수가 올바르게 표시됩니다. 그러나 항목은 실제로 표시되지 않습니다. 그 원인은 무엇일까요?
Private Sub cmbPackage_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbPackage.SelectedIndexChanged
// The Package controls what other options are available.
If (TypeOf (cmbPackage.SelectedItem) Is Package) Then
// Set current package as a member object to see if it was a scoping issue
_currentPackage = CType(cmbPackage.SelectedItem, Package)
ClearOptionDropdowns()
cmbReward.DataSource = _currentPackage.Rewards
cmbPayment.DataSource = _currentPackage.PaymentTypes
cmbCommMethod.DataSource = _currentPackage.CommunicationMethods
cmbBillMethod.DataSource = _currentPackage.BillMethods
cmbNotification.DataSource = _currentPackage.BillNotifications
cmbReward.Refresh()
cmbPayment.Refresh()
cmbCommMethod.Refresh()
cmbBillMethod.Refresh()
cmbNotification.Refresh()
...
...
End Sub
Private Sub ClearOptionDropdowns()
cmbReward.DataSource = Nothing
cmbPayment.DataSource = Nothing
cmbCommMethod.DataSource = Nothing
cmbBillMethod.DataSource = Nothing
cmbNotification.DataSource = Nothing
' Also had x.items.clear(), but removed to see if that was affecting it
End Sub
'.DataSource = Nothing'을 설정 한 후 콤보 상자에서'.Refresh()'메서드를 호출 해 보았습니까? – ChrisF
방금 시도했지만 작동하지 않았습니다. –