Come da oggetto, ho la necessità di popolare una combobox dinamicamente prendendo i dati da un db ma devo farlo da codice poiché uso la versione express e non posso creare un'oggetto usando la connessione via odbc.

Sono riuscito ha eseguire parte del mio percorso ma credo mi sfugga un dettaglio perché riesco a popolare la combo box ma risulta popolata con l'ultimo elemento della collezione.
Il codice è questo:

Classe che identifica il tipo:
codice:
Public Class tipologia
    Private id_tipologia As String
    Private descrizione_tipologia As String

    Property tipologia() As String
        Get
            Return id_tipologia
        End Get
        Set(ByVal value As String)
            id_tipologia = value
        End Set
    End Property

    Property descrizione() As String
        Get
            Return descrizione_tipologia
        End Get
        Set(ByVal value As String)
            descrizione_tipologia = value
        End Set
    End Property
End Class
Sub per caricare la combo:
codice:
Private Sub ftmAttivazioneTF_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim coll As New Collections.Generic.List(Of tipologia)
        Dim tipo As New tipologia()

        sql = "select id_tipo_elaborazione,descrizione from cen_tipi_elaborazione order by  id_tipo_elaborazione"
        bind() 'metodo per popolare un DataTableReader nominato dr
        While (dr.Read())
            tipo.tipologia = dr("id_tipo_elaborazione")
            tipo.descrizione = dr("descrizione")
            coll.Add(tipo)
        End While

        cmbTipologia.DataSource = coll
        cmbTipologia.DisplayMember = "descrizione"
        cmbTipologia.ValueMember = "tipologia"


    End Sub
il risultato è una combobox con 17 elementi ma tutti con chiave e valore relativi all'ultimo elemento della lista.