tipo | Nome | Cognome |
ciao
Inviato da www.mynewsgate.net
1. definisco una classe per la formattazione degli Item
---
Class ItemFormatter
Dim mValue As Object
Dim mDescription As String
Public Sub New(ByVal v As Object, ByVal d As String)
mValue = v
mDescription = d
End Sub
Public ReadOnly Property Value() As Object
Get
Return mValue
End Get
End Property
Public ReadOnly Property Description() As String
Get
Return mDescription
End Get
End Property
End Class
2. Implemento una funzione di utilità che mi aiuta a caricare la combo.
---
Public Sub FillCombo(ByVal Combo As ComboBox, ByVal source As DataTable, _
ByVal valueMember As String, ByVal formatDisplay As String, _
ByVal ParamArray displayMembers() As String)
Dim list As New ArrayList
Dim row As DataRow
For Each row In source.Rows
Dim values(displayMembers.Length) As Object
Dim c As Integer
For c = 0 To displayMembers.Length - 1
values(c) = row.Item(displayMembers(c))
Next
Dim description As String = String.Format(formatDisplay,
displayMembers)
Dim value As Object = row.Item(valueMember)
list.Add(New ItemFormatter(value, description))
Next
Combo.DataSource = list
Combo.ValueMember = "Value"
Combo.DisplayMember = "Description"
End Sub
3. testare è sempre una buona abitudine :-p
Dim dt As New DataTable
dt.Columns.Add("ID", GetType(Integer))
dt.Columns.Add("Nome", GetType(String))
dt.Columns.Add("Cognome", GetType(String))
dt.Rows.Add(New Object() {1, "Marco", "Barzaghi"})
dt.Rows.Add(New Object() {2, "GB", "Anonymous"})
dt.AcceptChanges()
FillCombo(ComboBox1, dt, "ID", "{0} | {1}", "Nome", "Cognome")
Se invece di avere una datatable hai una collezione tipizzata devi usare
Reflection per fare la Fill della Combo...
ma la sostanza non cambia :-p
HTH M.rkino
--
Marco Barzaghi - [MVP - MCP]
MS MVP Program: http://mvp.support.microsoft.com - http://italy.mvps.org/
UGIdotNet, User Group Italiano .NET - http://www.ugidotnet.org
Read my web log: http://www.ugidotnet.org/436.blog
http://www.bertaplanet.tk
"GB" <6762i...@mynewsgate.net> ha scritto nel messaggio
news:200405201...@mynewsgate.net...
Nel primo post ho scritto:
Dim description As String = String.Format(formatDisplay, displayMembers)
Invece di:
Dim description As String = String.Format(formatDisplay, values)
e si ke lo avevo anke testato,
pardon :-p
[Webbit di Padova ..... Simone]
"Marco Barzaghi" <marco.barzaghi_T...@gsol.it> ha scritto nel
messaggio news:OQd1eKmP...@TK2MSFTNGP10.phx.gbl...
Inviato da www.mynewsgate.net