DataGridViewComboBoxColumn con valores estáticos
Publicado por Julian (3 intervenciones) el 05/09/2011 23:22:23
Hola a todos, Poseo un datagridview con un combobox, el campo que recupero solo puede tener cuatro valores, pero en lugar de visualizar el código debo mostrar un texto, lo mismo cuando se seleccione el item del combobox, si lo cargo desde una tabla, lo cual no deseo porque son siempre los mismos valores, funciona perfectamente, con el siguiente código:
Adaptador = New SqlDataAdapter("SELECT COD_FORMA, FORMA FROM FORMAS", CN)
Dim col As DataGridViewComboBoxColumn = DirectCast(dvDetalle.Columns(7), DataGridViewComboBoxColumn)
Dim ds As New DataTable()
Adaptador.Fill(ds)
With col
.DataSource = ds
.DisplayMember = "FORMA"
.ValueMember = "COD_FORMA"
End With
Pero como no quiero recuperar desde una tabla, creo la siguiente clase y luego la cargo:
Public Class FORMAS
Private COD_FORMA As SByte
Private FORMA As String
Public Sub New(ByVal strcodigo As SByte, ByVal strforma As String)
Me.COD_FORMA = strcodigo
Me.FORMA = strforma
End Sub
Public ReadOnly Property str_COD_FORMA() As SByte
Get
Return COD_FORMA
End Get
End Property
Public ReadOnly Property str_FORMA() As String
Get
Return FORMA
End Get
End Property
End Class
Y la implemento mediante el siguiente código:
Dim Tipos As New ArrayList()
Tipos.Add(New FORMAS(1, "EFECTIVO"))
Tipos.Add(New FORMAS(2, "T/CRÉDITO"))
Tipos.Add(New FORMAS(3, "T/DÉBITO"))
Tipos.Add(New FORMAS(4, "DESC. PUNTOS"))
Dim col As DataGridViewComboBoxColumn = DirectCast(dvDetalle.Columns(7), DataGridViewComboBoxColumn)
With col
.DataSource = Tipos
.DisplayMember = "str_FORMA"
.ValueMember = "str_COD_FORMA"
End With
Pero muestra el siguiente error:
¡El valor de Datagridviewcombocell no es válido!
Agradezco quien me de una pista o idea de porque no funciona!
Adaptador = New SqlDataAdapter("SELECT COD_FORMA, FORMA FROM FORMAS", CN)
Dim col As DataGridViewComboBoxColumn = DirectCast(dvDetalle.Columns(7), DataGridViewComboBoxColumn)
Dim ds As New DataTable()
Adaptador.Fill(ds)
With col
.DataSource = ds
.DisplayMember = "FORMA"
.ValueMember = "COD_FORMA"
End With
Pero como no quiero recuperar desde una tabla, creo la siguiente clase y luego la cargo:
Public Class FORMAS
Private COD_FORMA As SByte
Private FORMA As String
Public Sub New(ByVal strcodigo As SByte, ByVal strforma As String)
Me.COD_FORMA = strcodigo
Me.FORMA = strforma
End Sub
Public ReadOnly Property str_COD_FORMA() As SByte
Get
Return COD_FORMA
End Get
End Property
Public ReadOnly Property str_FORMA() As String
Get
Return FORMA
End Get
End Property
End Class
Y la implemento mediante el siguiente código:
Dim Tipos As New ArrayList()
Tipos.Add(New FORMAS(1, "EFECTIVO"))
Tipos.Add(New FORMAS(2, "T/CRÉDITO"))
Tipos.Add(New FORMAS(3, "T/DÉBITO"))
Tipos.Add(New FORMAS(4, "DESC. PUNTOS"))
Dim col As DataGridViewComboBoxColumn = DirectCast(dvDetalle.Columns(7), DataGridViewComboBoxColumn)
With col
.DataSource = Tipos
.DisplayMember = "str_FORMA"
.ValueMember = "str_COD_FORMA"
End With
Pero muestra el siguiente error:
¡El valor de Datagridviewcombocell no es válido!
Agradezco quien me de una pista o idea de porque no funciona!
Valora esta pregunta
0