Foros del Web » Programación para mayores de 30 ;) » .NET »

Pasar datatable como propiedad de un form

Estas en el tema de Pasar datatable como propiedad de un form en el foro de .NET en Foros del Web. Hola, vereis tengo un form con un DataGridView del que selecciono varias filas, esas filas las meto en un datatable tipado que da valor a ...
  #1 (permalink)  
Antiguo 08/03/2010, 15:42
 
Fecha de Ingreso: octubre-2006
Mensajes: 9
Antigüedad: 17 años, 6 meses
Puntos: 0
Pasar datatable como propiedad de un form

Hola, vereis tengo un form con un DataGridView del que selecciono varias filas, esas filas las meto en un datatable tipado que da valor a una property del form que es un datatable:

En esta parte lleno el datatable tipado (dt_seleccionados):

Private Sub cmd_asociar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_asociar.Click
If Me.grd_grid.SelectedRows.Count <> 0 Then
For i As Integer = 0 To Me.grd_grid.SelectedRows.Count - 1
dt_seleccionados.Rows.Add()
dt_seleccionados.Rows(i).Item("n_id_producto") = Me.grd_grid.SelectedRows(i).Cells("n_id_producto") .Value
dt_seleccionados.Rows(i).Item("c_nombre") = Me.grd_grid.SelectedRows(i).Cells("c_nombre").Valu e
Next
dt_seleccionados.AcceptChanges()
End If

frm_asociar.Show()
End Sub

Esta es la declaración de la property para el form:

Public Property p_dt_seleccionados() As Datos.ds_productos.dt_productosDataTable
Get
Return dt_seleccionados
End Get
Set(ByVal value As Datos.ds_productos.dt_productosDataTable)
dt_seleccionados = value
End Set
End Property

Hasta aquí todo funciona, la property se llena con los valores seleccionados, el problema es que cuando abro el segundo formulario (frm_asociar) e intento desde él recuperar los valores a través de la property (frm_form.p_dt_seleccionados.rows.count) por ejemplo, la property está vacía y querría saber que estoy haciendo mal.

Gracias de antemano y un saludo a todos.
  #2 (permalink)  
Antiguo 08/03/2010, 15:50
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Pasar datatable como propiedad de un form

No te serviría tener una clase con objetos estáticos que esté expuesta en toda la aplicación para que acceses a ella??

Por ejemplo, crea una clase llamada Common, dentro de ella expones tu property de tipo Shared

Código:
Public Class Common

    Private Shared m_selectedItem As DataTable
    Public Shared Property SelectedItems() As DataTable
        Get
            Return m_selectedItem
        End Get
        Set(ByVal value As DataTable)
            m_selectedItem = value
        End Set
    End Property
End Class
Y una vez que la llenas desde cualquier form puedes accesar a ella, y en cualquier momento la puedes modificar y ese cambio por consecuencia se verá reflejado en toda la aplicación

Espero haber sido claro

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 08/03/2010, 15:57
 
Fecha de Ingreso: octubre-2006
Mensajes: 9
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Pasar datatable como propiedad de un form

Correctísimo RootK, Gracias por ser tan rápido, es una buena solución pero no obstante, me gustaría saber cual es la razón de que no se puedan pasar propertys directamente de form a form, en cualquier caso agradezco muchísimo tu ayuda y si me puedes decir el motivo concreto de que falle mi código sería genial.

Un saludo.
  #4 (permalink)  
Antiguo 08/03/2010, 16:22
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Pasar datatable como propiedad de un form

Cita:
si me puedes decir el motivo concreto de que falle mi código sería genial.
No he visto a detalle tu código pero por lo que alcanzo a ver y mencionas supongo que cuando abres frm_asociar dentro creas un nuevo objeto llamado frm_form que me imagino que ahi es donde se encuentra la propiedad expuesta, pero como estás haciendo una nueva instancia de frm_form la propiedad se encuentra nula, es por ello que te comentaba que expongas una propiedad de tipo estática, para que no depende de la creación de un objeto, ¿me explico?

Saludos y cualquier duda por aqui andamos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 08/03/2010, 17:05
 
Fecha de Ingreso: octubre-2006
Mensajes: 9
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Pasar datatable como propiedad de un form

Excelente, muchas gracias por todo RootK, esa idea me abre nuevos caminos y como te dije antes, la idea de la clase comun a la capa funciona seguro así que de una forma u otra solucionaré esto. Gracias de nuevo y un saludo desde el otro lado del charco, ahora creo que ya voy a dejar de trabajar por hoy, que aquí son las doce de la noche.

Etiquetas: datatable, pasar, propiedad, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:11.