none
Como llenar un listview RRS feed

  • Pregunta

  • Estimados,

    tengo un proyecto en capas(datos, negocio y presentación) en donde quiero hacer una prueba para llenar un listview en WPF.

    En mis aplicaciones de Winform lo hacía de esta forma pero ahora en WPF no sé como hacerlo:

    XAML:

    <ListView Name="lvwMain">

            <ListView.View>

                <GridView>

                    <GridViewColumn Width="100" Header="Folio" DisplayMemberBinding="{Binding FOLIO}"  />

                    <GridViewColumn Width="100" Header="Tarifa" DisplayMemberBinding="{Binding TARIFA}"/>

                 </GridView>

            </ListView.View>

        </ListView>

    VB:

    Dim oREG As New Business.Registro

    Dim oDataBuscar As New DataTable

     

        Private Sub LLenarDetalle()

            Dim item As New ListViewItem

            lvDetalle.Items.Clear()

     

            oDataBuscar = oREG.BuscarRegistro().Tables("Registro")

     

            If oDataBuscar.Rows().Count > 0 Then

     

                For Each fila As DataRow In oDataBuscar.Rows()

                    item = lvDetalle.Items.Add(fila("FOLIO"))

                    item.Tag = fila

     

                   item.SubItems.Add(IIf(CInt(fila("TARIFA")) = 0, "-", FormatCurrency(CInt(fila("TARIFA")), 0)))

                Next

            End If

         End Sub

    jueves, 3 de febrero de 2011 20:59

Respuestas

  • Que tal Marco,

    lo que debes hacer es lo siguiente:

    al datatable donde se encuentran los datos que quieres mostrar lo asignas en su defaultview al itemssource del listview asi,

    lvwMain.ItemsSource = oDataBuscar.DefaultView

    y listo con esto estaras visualizando tu informacion.

    Saludos!!

    • Propuesto como respuesta El Maiks miércoles, 9 de febrero de 2011 16:45
    • Marcado como respuesta Marco Elgueta miércoles, 9 de febrero de 2011 19:29
    miércoles, 9 de febrero de 2011 16:45

Todas las respuestas

  • Hola MArco, recuerda que para que la lista te muestre datos tiene que asociarle la fuente a la propiedad DataContext, ademas podias asociarle directamente el DateTable y hacer un converter para la columna TARIFA.

    De esa manera despues de 

      oDataBuscar = oREG.BuscarRegistro().Tables("Registro")

     lwMain.DataContext = oDataBuscar


    y con el converter ya estaria, si no sabes hacer un converter te redirigo a una entrada de mi blog 

     

    http://geeks.ms/blogs/oalvarez/archive/2009/07/20/ivalueconverter-una-interfaz-muy-util-en-el-databinding-de-wpf.aspx

     

    Como siempre mis ejemplos están en c# pero no son muy complicados para entenderlos


    Oscar Alvarez Guerras - Arquitecto Software en I3B Blog:http://geeks.ms/blogs/oalvarez Por favor marca como respuesta si te ha ayudado esta respuesta
    domingo, 6 de febrero de 2011 8:22
  • Estimado, gracias por tu interes.

    hice la prueba haciendo lo que me dijiste:

            oDataBuscar = oREG.BuscarRegistro().Tables("Registro")

            lvwMain.DataContext = oDataBuscar

    Pero, no me llena nada...

    En los foros encontré esto pero el problema que me llena todos los campos y yo necesito solo dos de ellos, que estoy haciendo mal. Disculpame pero estoy recien empezando con esto....

    Private Sub LLenarDetalle()

            Dim gv As New GridView

     

            oDataBuscar = oREG.BuscarRegistro().Tables("Registro")

     

     

            For Each c As DataColumn In oDataBuscar.Columns

                Dim gvColumn As New GridViewColumn

     

                gvColumn.DisplayMemberBinding = New Binding(c.ColumnName)

                gvColumn.Header = c.ColumnName

                gv.Columns.Add(gvColumn)

            Next

     

            lvwMain.View = gv

            lvwMain.DataContext = oDataBuscar

     

            Dim bind As New Binding

            lvwMain.SetBinding(ListView.ItemsSourceProperty, bind)

        End Sub

    domingo, 6 de febrero de 2011 16:16
  • Que tal Marco,

    lo que debes hacer es lo siguiente:

    al datatable donde se encuentran los datos que quieres mostrar lo asignas en su defaultview al itemssource del listview asi,

    lvwMain.ItemsSource = oDataBuscar.DefaultView

    y listo con esto estaras visualizando tu informacion.

    Saludos!!

    • Propuesto como respuesta El Maiks miércoles, 9 de febrero de 2011 16:45
    • Marcado como respuesta Marco Elgueta miércoles, 9 de febrero de 2011 19:29
    miércoles, 9 de febrero de 2011 16:45
  • Gracias Maiks,

    llevaba varios días sin tener solución a mi problemas, se agradece :)

    miércoles, 9 de febrero de 2011 19:32