2008-09-24 8 views
22

He visto muchas discusiones y gente preguntando por DataGrid para WPF y quejándose de Microsoft por no tener una con su framework WPF hasta la fecha. Sabemos que WPF es una excelente tecnología de interfaz de usuario y tiene el concepto de ItemsControl, DataTemplate, etc. para hacer un excelente UX. Incluso WPF tiene un control más parecido: ListView, que se puede modelar fácilmente para ofrecer un mejor UX que una pantalla tradicional como Datagrid. Y diría que un control DataGrid listo para usar matará u ocultará mucha creatividad y seguramente disminuirá las innovaciones en el campo Experiencia de usuario.¿DataGrid es una necesidad en WPF?

Entonces, ¿cuál es su opinión acerca de la necesidad de DataGrid en WPF como componente de Framework? Si crees que es necesario, ¿es porque el mundo está tan acostumbrado a la forma de visualización de datos DatGrid durante muchos años?

Algunos otros hilos que tienen la discusión sobre DatGrid son here y here

Enlace a WPF ToolKit - Últimas WPF DatGrid

Respuesta

29

DataGrids son excelentes para la visualización de grandes cantidades de datos tabulares con destino a un almacén de respaldo.

Pero lo que sucedió en el mundo de WinForms fue que la gente a menudo los usaba para todo lo que requería una lista de desplazamiento de elementos múltiples. Pronto se habilitaron los DataGrids de terceros que permitían que las columnas y campos contuvieran botones y ComboBoxes e íconos, etc.

DataGrid se convirtió en un caballo de batalla porque había una necesidad de algo en lo que se pudiera forzar a comportarse. Algo similar sucedió con DataTables antes de que aparecieran las colecciones genéricas, y cuando se usan muchas DataTables, presentarlas en la UI con DataGrid es la ruta de menor resistencia.

Creo que cuando WPF salió, muchos programadores como yo seguían pensando de esta manera, y buscaron puertos WPF del concepto DataGrid.

5

No se puede pensar en un mejor control para mostrar datos tabulares, especialmente en aplicaciones comerciales donde no desea reinventar la rueda mediante plantillas/desarrollo de un elemento (Headered) ItemsControl para que se comporte como el antiguo DGV. Estoy seguro de que vio this.

1

Sí lo es! Entre muchos otros controles que el ms no pudo entregar. (Datepicker, NumericControl)

MS primero debería darnos las herramientas para hacer el trabajo, eso es lo menos que espero de un entorno de programación con el alboroto de wpf.

+0

¡Así es! ¡sí necesitamos DatePicker, NumericControl y en realidad TODOS los controles de formas de ganar que faltan! y no solo si quieren atraer personas a WPF, deberían facilitar la vida con muchos más controles incorporados + temas integrados para cada solución. – Shimmy

1

Después de trabajar con WPF durante aproximadamente 2 años. Yo diría que un DataGrid es realmente un ListBox glorificado (ya que [casi] todo en WPF no tiene estilo).

Se podría diseñar un ListBox para tomar una entidad de algún tipo y mostrar un control de "registro" para cada entrada. Según la flexibilidad con que se realicen, podrían ajustarse automáticamente en función de la entidad aprobada.

+0

Las rejillas de datos ofrecen muchas instalaciones que no se pueden hacer con un listbox glorificado. Edición, clasificación en cualquier campo, agrupación de usuarios finales y cientos de otras características que tiene una buena cuadrícula de datos. –

+0

Estoy de acuerdo ... pero el contexto de la pregunta era realmente "¿Qué hago? Microsoft no tiene un DataGrid" Estaba dando la mejor respuesta en ese momento. Hoy, hay un DataGrid que hace muchas cosas maravillosas. No estoy argumentando eso. Esto se publicó cuando no existía DataGrid. Mi negocio estaba usando Infragistics DataGrid en ese momento. – Phobis

+0

No estoy de acuerdo, mientras que ListBox solo controla datos de una sola cara, se crea un DataGrid para controlar los datos tabulares (columnas + filas), lo que es sorprendente. – Shimmy

1

Es esencial, pero puede lograr casi el mismo efecto con un ListView que está usando un GridView, ¿o no?

+0

Sí, exactamente ese es el origen de mi pregunta. Nunca pensé en una gran necesidad de DataGrid en una gran tecnología UI como WPF –

+1

. Hay muchas cosas que no obtienes de esta manera. Clasificar el contenido de la columna es solo el más obvio y básico. Puede implementar la clasificación, claro, pero ¿por qué debería hacerlo? En mi tienda, hemos agregado más de 3000 líneas de líneas al Basic ListView/GridView para obtener un control adecuado para nosotros. – PeterAllenWebb

+0

con un ListView no puede agregar filas nuevas tan fácilmente como con DataGrid, ya que no hay EditMode en ListView. – Shimmy

2

Sí DataGrids nunca desaparecerá como componentes esenciales de la interfaz de usuario comercial. ¡La gente adora sus hojas de cálculo y queremos compartir ese amor!

Nota que la EM son envío de estos controles adicionales - que han creado la WPF Toolkit en CodePlex para proporcionar una respuesta rápida, estilo de fuente abierta de despliegue.

Ya incluye un DataGrid y un calendario.

3

Nadie discute que usted mismo puede hacer un control DataGrid en WPF. Probablemente se pueda decir lo mismo sobre WinForms, aunque sería más difícil. Implementé algunas funciones con ListView, presentar datos tabulares es fácil, incluso podría decirse que está bien soportado. Sin embargo, la cantidad de código, código escrito manualmente, que se necesita para editar ListView es enorme.

Las aplicaciones comerciales generalmente requieren la edición de muchas tablas, y no desea ser creativo, desea ser rápido. Es por eso que DataGrid es necesario en mi opinión.

+3

Lo estoy disputando. Hacer una buena cuadrícula de datos lleva muchísimo tiempo. V1.0 de nuestra cuadrícula de datos (la de Xceed para WPF, en enero de 2007) tardó más de 11000 horas, y la próxima de Silverlight habrá tardado más de 17500 horas. Estabilidad, características, buena API, todo lleva mucho tiempo ... aplausos –