Principales respuestas
Como llenar un listview

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
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
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
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 -
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
-
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
-