Problemas con ArrayList y un Datagrid

30/12/2006 - 20:14 por Jarsinio | Informe spam
Estimados,
No quiero teminar el ano sin antes resolve este problema que tanto
dolor de cabeza me taer.
Quiero llenar un datagrid utilizando un datagrid.
Por lo visto hacer es simple pero a mi no me esta funcionando , alguno
me podría dar una mano y decirme en que me estoy equivocando

Esta es mi clase alumno ( reducida al minimo! )

Class alumno
Dim mcodigo As Integer
Dim mnombre As String

Public Sub New(ByVal codigo As Integer, ByVal nombre As String)
Me.mcodigo = codigo
Me.mnombre = nombre
End Sub


Public Function Codigo()
Return Me.mcodigo
End Function

Public Function Nombre()
Return Me.mnombre
End Function


End Class

en el codigo de mi formulario tengo lo siguiente!

Dim alu As New alumno(1, "jorge")
Dim alu2 As New alumno(2, "Raul")
alumnosArray.Add(alu)
alumnosArray.Add(alu2)

Me.grilla.DataSource = alumnosArray


sin embargo no me muestra nada, que puese ser??

saludos

Preguntas similare

Leer las respuestas

#1 Luis Miguel Blanco
31/12/2006 - 09:37 | Informe spam
Hola Jarsinio

Para conseguir que tu datagrid muestre un arraylist conteniendo objetos de
una clase propia, debes definir en tu clase tantas propiedades como columnas
quieres mostrar en el datagrid. Algo parecido a lo que te muestro en el
siguiente bloque de código, donde he realizado una pequeña variación a tu
clase alumno

'/////////////////////////////////////
Class alumno
Dim mcodigo As Integer
Dim mnombre As String

Public Sub New(ByVal codigo As Integer, ByVal nombre As String)
Me.mcodigo = codigo
Me.mnombre = nombre
End Sub

Public Property Codigo() As Integer
Get
Return mcodigo
End Get
Set(ByVal Value As Integer)
mcodigo = Value
End Set
End Property

Public Property Nombre() As String
Get
Return mnombre
End Get
Set(ByVal Value As String)
mnombre = Value
End Set
End Property
End Class
'/////////////////////////////////////

A continuación, necesitas añadir a tu datagrid un estilo, objeto
DataGridTableStyle, y a este añadirle tantos objetos DataGridTextBoxColumn
como propiedades de tu clase quieres visualizar en el datagrid.

Es muy importante que en la propiedad DataGridTableStyle.MappingName asignes
una cadena con el nombre del tipo que vas a utilizar como origen de datos, es
decir "ArrayList", mientras que en la propiedad
DataGridTextBoxColumn.MappingName asignarás los nombres de las propiedades de
tu clase alumno. En el siguiente bloque de código puedes ver un ejemplo de
esto que te comento.

'/////////////////////////////////////
Dim alumnosArray As ArrayList = New ArrayList

Dim alu As New alumno(1, "jorge")
Dim alu2 As New alumno(2, "Raul")
alumnosArray.Add(alu)
alumnosArray.Add(alu2)

Dim oEstilo As DataGridTableStyle = New DataGridTableStyle
oEstilo.MappingName = "ArrayList"

Dim col1 As DataGridTextBoxColumn = New DataGridTextBoxColumn
col1.MappingName = "Codigo"
col1.HeaderText = "codigo"
col1.Width = 50
oEstilo.GridColumnStyles.Add(col1)

Dim col2 As DataGridTextBoxColumn = New DataGridTextBoxColumn
col2.MappingName = "Nombre"
col2.HeaderText = "nombre"
col2.Width = 50
oEstilo.GridColumnStyles.Add(col2)

Me.grilla.TableStyles.Add(oEstilo)

Me.grilla.DataSource = alumnosArray
'/////////////////////////////////////

Espero que te sea de utilidad

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Jarsinio" wrote:

Estimados,
No quiero teminar el ano sin antes resolve este problema que tanto
dolor de cabeza me taer.
Quiero llenar un datagrid utilizando un datagrid.
Por lo visto hacer es simple pero a mi no me esta funcionando , alguno
me podría dar una mano y decirme en que me estoy equivocando

Esta es mi clase alumno ( reducida al minimo! )

Class alumno
Dim mcodigo As Integer
Dim mnombre As String

Public Sub New(ByVal codigo As Integer, ByVal nombre As String)
Me.mcodigo = codigo
Me.mnombre = nombre
End Sub


Public Function Codigo()
Return Me.mcodigo
End Function

Public Function Nombre()
Return Me.mnombre
End Function


End Class

en el codigo de mi formulario tengo lo siguiente!

Dim alu As New alumno(1, "jorge")
Dim alu2 As New alumno(2, "Raul")
alumnosArray.Add(alu)
alumnosArray.Add(alu2)

Me.grilla.DataSource = alumnosArray


sin embargo no me muestra nada, que puese ser??

saludos


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida