2010-07-04 15 views
12

¿Cuáles son las principales ventajas de usar un control de cuadrícula de datos sobre el uso de una vista de lista? ¿Cuándo debería usarse cada uno?Listview vs datagrid

Respuesta

10

He abandonado ListView para DataGrid en .Net 4, ya que la creación de plantillas de las columnas es más fácil.

El diseño también es más sensato, y no es necesario que recuerde configurar HorizontalContentAlignment para Estirar para obtener el contenido de la celda para cubrir la celda. Otra buena parte de la funcionalidad es editar plantillas en DataGrid, lo que me alivia tener que usar CellTemplateSelector para obtener un control diferente al editar la celda.

+0

Gracias por su información. ¿Hay alguna diferencia con los eventos para los cambios de datos en las columnas, la facilidad de clasificar/filtrar los datos o es todo lo mismo? –

+0

No estoy seguro de eso, ya que utilizo el enlace a un modelo para ordenar, filtrar y recibir notificaciones de actualización de datos. Pero para eso, ListView y DataGrid parecen similares. – codekaizen

+0

Mi aplicación actual tiene una base de datos> Entity Framework> Colección observable (en viewmodel)> listview. Lo que es importante para mí es que me gustaría tener los datos en la actualización de la cuadrícula de datos cuando cambien los datos de la base de datos. No estoy seguro de qué tan simple es hacer eso, pero mirándolo ahora mismo. –

11

Algunos puntos a considerar que Colin Eber han declarado en DataGrid vs GridView discusión:

  • ListView (GridView) es un control de sólo lectura fuera de la box.The solución estándar sería para sincronizar la lista con a 'detalles View' componen de cuadros de texto
  • el DataGrid permite editar en el lugar de los datos
  • el DataGrid realiza transacción edita (la fila se trata como un átomo)
  • El apoyo cuadrícula de datos de generación de auto-columna
  • la cuadrícula de datos tiene un elemento RowDetails (si te gusta ese tipo de cosas!)
  • la DatGrid soporta casi todo el ListView hace, múltiples modos de selección, estilo, etc ...

Y otro importante:

  • La cuadrícula de datos tiene construir-en la clasificación de soporte haciendo clic sobre el encabezado de la columna. Si bien agregar ordenación a ListView/GridView es absolutely possible, preferiría tener este tipo de cosas listas para usar en DataGrid.
+1

¿y el rendimiento? una cuadrícula de datos con 200 elementos (8 columnas) agrupados por columnas necesita 20s + en mi máquina para representar. – Firo

+1

@Firo: Eso no es un problema de DataGrid. El cuello de botella de rendimiento debe estar en otro lugar. – Liero

+1

@Liero intercambié la cuadrícula de datos con la cuadrícula de datos wpf toolkit y el problema desapareció. Definitivamente es un problema con la cuadrícula de datos wpf simple. Probé que lleva años medir con las agrupaciones – Firo