Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Añadir Items a un combobox (Valor y Texto a mostrar)

1,858 views
Skip to first unread message

Ira

unread,
Mar 10, 2010, 11:36:30 AM3/10/10
to

Tengo un combobox sin enlazar a datos, en el que a trav�s de c�digo a�ado
los items, pero me gustar�a a�adir en cada item, el valor que se "displaya"
y el valor que realmente tiene. Como utilizar displaymember y valuemember
pero sin enlazar a datos.

He buscado por ah� y he encontrado esto
http://www.eggheadcafe.com/software/aspnet/34250796/agregando-items-a-un-list.aspxde Alberto Poblacion (que suele ayudar mucho en este foro), en el que indicaque se podr�a hacer de la siguiente manera:Combobox1.items.add(new listitem(texto, codigo))Me da la sensaci�n que esto solo vale en webforms, vamos, que lo intento enmi windows form y no existe ListItem.�Algui�n sabe como hacerlo en un windows form?.Gracias,Ira

Leandro Tuttini

unread,
Mar 10, 2010, 12:34:31 PM3/10/10
to
hola

podrias crear una clase simple, algo como ser

Public Class KeyValueItem

Private _Id As String

Public Property Id() As String
Get
Return _Id
End Get
Set (ByVal Value As String)
_Id = value
End Set
End Property


Private _descripcion As String

Public Property Descripcion() As String
Get
Return _descripcion
End Get
Set (ByVal Value As String)
_descripcion = value
End Set
End Property
End Sub

entonces solo queda que tengas alguna funcionalidad que transforme los
datos de tu lista devolviendo un List(Of KeyValueItem)
en dodne podras usar las propeidades de displaymember= "Descripcion" y
valuemember= "Id"


podrias aplicar tambien algo como lo comentado aqui
http://www.logiclabz.com/asp-net/use-key-value-pair-in-net-combobox.aspx

si se que el ejemplo esta en c#, pero la traduccion seria

Public Class KeyValuePair

Public Key As Object
Public Value As String

Public Sub New(ByVal NewValue As Object, ByVal NewDescription As
String)
Key = NewValue
Value = NewDescription
End Sub

Public Overloads Overrides Function ToString() As String
Return Value
End Function
End Class

'add item to combo box using keyvalue pair class

cmbTopSites.Items.Add(New KeyValuePair("100", "Top 100 sites"))

'key and values of the selected item can be accessed as below

Dim maxPages As KeyValuePair = DirectCast(cmbTopSites.SelectedItem,
KeyValuePair)
Dim skey As String = maxPages.Key.ToString()
Dim svalue As String = maxPages.value.ToString()


saludos

Ira

unread,
Mar 11, 2010, 3:33:10 AM3/11/10
to
Gracias Leandro. Había intentado hacer una clase pero como no controlo
mucho, no podía luego acceder a la propiedad selecteditem y a la
selectedvalue. Con tus intrucciones todo perfecto. Gracias

¿Cómo a los chicos de microsoft no se les ha ocurrido que se necesite hacer
esto?.

"Leandro Tuttini" <ltut...@gmail.com> escribió en el mensaje
news:ce10b0f0-16c3-4c7f...@g26g2000yqn.googlegroups.com...

0 new messages