Buondì a tutti,
ho cercato su Internet e su questo stesso forum informazioni sul databinding di combobox, ma da nessuna parte sembra essere affrontato lo specifico problema che ho io.
La cosa è semplice: ho una tabella tipo:
VIAGGI
-----------
IDViaggio(PK)
Destinazione
DataPartenza
Mezzo
dove Tipo è un numero che corrisponde a
0 - bus
1 - aereo
2 - nave
3 - treno
Queste informazioni sono riportate in altrettante TextBox collegate al DataSet tramite BindingSource. Tutto funziona bene, riesco a modificare i valori e a salvarli.
Il problema ce l'ho con il campo "Mezzo", perchè ovviamente viene riportato il numero presente nel database, mentre io vorrei proporre all'utente le relative descrizioni.
Per questo sto facendo delle prove con una ComboBox, ma non riesco a fare il binding.
Nel codice ho provato a creare una struttura come questa:
Public Structure sMezzo
Private _codice As Integer
Private _descrizione As String
Public Property Codice() As Integer
Get
Return _codice
End Get
Set(ByVal value As Integer)
_codice = value
End Set
End Property
Public Property Descrizione() As String
Get
Return _descrizione
End Get
Set(ByVal value As String)
_descrizione = value
End Set
End Property
End Structure
che inizializzo in Form_Load così:
Public Mezzi As sMezzo
...
Private Sub Form1_Load(.....) ...
Mezzi = New sMezzo() {New sMezzo With {.Codice = 0, .Descrizione = "Bus"}, _
New sMezzo With {.codice = 1, .descrizione = "Aereo"}, _
New sMezzo With {.codice = 2, .descrizione = "Nave"}, _
New sMezzo With {.codice = 3, .descrizione = "Treno"} _
}
ComboBox1.DataSource = Mezzi
ComboBox1.DisplayMember = "descrizione"
ComboBox1.ValueMember = "codice"
In questo modo nella combo vengono visualizzate le scelte corrette, e viene correttamente restituito il "numero" corrispondente alla scelta effettuata, ma non riesco a capire come fare a collegarlo al dataset: a far sì, in altre parole, che quando carico una riga dalla tabella venga selezionato il valore corretto della combo, che poi può essere modificato e salvato.
In effetti in tutto ciò che ho letto sull'argomento non viene presa in considerazione la possibilità di avere un'origine dati per l'elenco visualizzato (l'array creato nel codice) e una per il valore da selezionare (il campo del database).
Mi date una mano?
Grazie a tutti!! Ciao!
Roberto