ItemData en .NET

Fecha: 18/Oct/2004 (18/10/2004)
Autor: Alvaro Regalado; alvaritus@msn.com

 


Para los que extrañan el ItemData de VB6.

Hace poco tiempo que estoy aprendiendo .NET y me surgió la necesidad de usar en una ComboBox el ItemData del viejo y querido VB6. Me di cuenta de que fue sustituido por otro conjunto de propiedades. En fin, me decidí a recrearlo en .Net y acá va mi solución al tema

1) Crear una clase Cls_lista

Public Class Cls_lista

    Private StrNombre As String

    Private IntCodigo As String

 

    Public Sub New()

        StrNombre = ""

        IntCodigo = 0

    End Sub

 

    Public Sub New(ByVal Name As String, ByVal ID As String)

        StrNombre = Name

        IntCodigo = ID

    End Sub

 

    Public Property Name() As String

        Get

            Return StrNombre

        End Get

 

        Set(ByVal sValue As String)

            StrNombre = sValue

        End Set

    End Property

 

    Public Property ItemData() As String

        Get

            Return IntCodigo

        End Get

 

        Set(ByVal iValue As String)

            IntCodigo = iValue

        End Set

    End Property

 

    Public Overrides Function ToString() As String

        Return StrNombre

    End Function

 

End Class

2) Cargar la combo

Dim miCombo As New ComboBox

        With miCombo

            .Items.Add(New Cls_lista("Peso", 15))

            .Items.Add(New Cls_lista("Dólar", 25))

            .Items.Add(New Cls_lista("Euro", 45))

            .SelectedIndex = 0

        End With

3) Para referenciar al elemento deseado escribo lo siguiente

miCombo.Items(CMB_moneda_origen.SelectedIndex).ItemData

 


Nota del Guille:

Este código funcionará perfectamente si NO está activada Option Strict On.

Si quieres usarlo con Option Strict On, te recomiendo que cambies el tipo del campo IntCodigo y la propiedad ItemData de la clase a Integer.
Para acceder al valor almacenado en el combo tendrás que hacer una conversión de tipos:
CType(ComboBox1.Items(ComboBox1.SelectedIndex), Cls_lista).ItemData

Petición del Guille:
Por favor, acostumbraros a usar SIEMPRE Option Strict On.
Gracias.


ir al índice