WPF DataGrid en 2026: Todavía aquí, todavía insuperable
El DataGrid integrado: congelado desde 2010
Aquí hay algo de lo que no se habla lo suficiente. Microsoft agregó elSystem.Windows.Controls.DataGrid a WPF en .NET Framework 4.0 — eso fue en abril de 2010. Antes de eso, existía como una descarga separada en el WPF Toolkit para .NET 3.5.
En el dieciséis años Desde que se convirtió en un control integrado, Microsoft no le ha agregado ni una sola característica nueva. Ni una. Los únicos cambios desde entonces: correcciones de accesibilidad en .NET Framework 4.7.1 (los lectores de pantalla ahora anuncian correctamente las celdas de la cuadrícula) y limpieza de código de rutina. Eso es todo.
Si miras la repositorio dotnet/wpf en GitHub actualmente encontrarás problemas abiertos relacionados con fugas de memoria en DataGrid, desplazamientos entrecortados con conjuntos de datos grandes y un comportamiento roto en el portapapeles. Algunos de estos han estado abiertos por años.
Nada de esto hace que la funcionalidad integrada WPF DataGrid un control deficiente. Para una tabla simple — unos pocos cientos de filas, ordenamiento básico, vinculación de columnas directa — cumple su función y no cuesta nada. Pero no ha evolucionado porque la inversión de Microsoft en WPF se destina a la plataforma, no a controles individuales.
Si necesita agrupamiento con resúmenes, jerarquías maestro-detalle, carga de datos asincrónica, exportación a Excel, o cualquier cosa más allá de mostrar filas planas — la cuadrícula integrada no te ayudará. Microsoft no la diseñó para eso en 2010, y nadie la ha ampliado desde entonces.
Mientras tanto, el ecosistema se dedicó a perseguir frameworks
Algo interesante sucedió en la última década. Cuando Microsoft empezó a impulsar UWP, muchos proveedores de componentes la siguieron. Crearon suites de controles UWP, invirtieron tiempo de ingeniería, lanzaron productos. Luego el impulso de UWP se estancó. Después vino WinUI 3. Mismo ciclo: los proveedores crearon nuevas suites, rehicieron sus controles para la nueva plataforma. Luego WinUI 3 tuvo problemas de adopción y lagunas de funcionalidad. Siguió MAUI. Y después Blazor Hybrid. Cada cambio de framework significó dividir aún más los equipos de ingeniería, mantener más bases de código y extenderse más delgadamente en plataformas que cambiaban de dirección bajo sus pies. A través de todo esto, WPF siguió funcionando en producción. Las aplicaciones no se preocuparon por la estrategia de frameworks de Microsoft; se preocuparon por funcionar.Xceed DataGrid para WPF: 19 años sin distracciones
Xceed lanzó DataGrid para WPF en 2007 — un año antes de que el DataGrid integrado existiera siquiera como una descarga de toolkit. Xceed fue el primer proveedor comercial de controles WPF, y punto. La empresa en sí existe desde 1994, y sus componentes terminaron dentro de Microsoft Office 2007, Team Foundation Server, Windows Home Server y Flight Simulator. Eso son 19 años de construcción DataGrid WPF específicamente. No 19 años repartidos en cinco frameworks. No 19 años manteniendo un producto WPF de lado mientras el equipo A trabajaba en la versión web. Diecinueve años tratando WPF como la plataforma principal. Mientras otros proveedores contrataban equipos de UWP, luego equipos de WinUI 3, luego equipos de MAUI — Xceed siguió lanzando actualizaciones de WPF. Más de 185 funciones. 18 temas integrados. Y todavía funciona en la última versión de .NET.Ejecutándose en .NET 10: cero fricción
Tomamos el proyecto de demostración de Xceed DataGrid, lo reorientamos a .NET 10 y lo ejecutamos. Este es el archivo del proyecto:<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Xceed.Products.Wpf.DataGrid.Full" Version="7.3.25458.6675" />
</ItemGroup>
</Project>
Construye. Ejecuta. Todo funciona — desplazamiento de Tableflow, agrupamiento, maestro-detalle, temas, todo el paquete. Sin *shims* de compatibilidad, sin soluciones temporales, sin advertencias de “soporte parcial”.
Un control que Xceed lanzó por primera vez cuando .NET 3.0 estaba vigente, funcionando sin problemas en .NET 10. Así es como se ve la inversión a largo plazo en plataformas. Y dado que .NET 10 es una versión LTS (Microsoft lo soporta hasta noviembre de 2028), esta combinación será un objetivo estable durante años.
Lo que aún no puedes conseguir en ningún otro lugar
No voy a repasar cada característica, hay una lista completa tutorial para empezar y 28 solicitudes de ejemplo para eso. En cambio, aquí están las cosas que todavía no tienen un equivalente real en ningún otro WPF DataGrid, integrado o de otro tipo.Virtualización asíncrona de datos
Esta es la diferencia más importante y lo ha sido durante años. La mayoría de las cuadrículas realizan virtualización de UI — solo renderizan las filas visibles. Xceed va más allá con la virtualización asíncrona de datos: la cuadrícula recupera datos de su fuente en segundo plano, almacena en caché páginas y precarga datos cercanos antes de que el usuario se desplace hacia ellos. Su UI nunca se congela, incluso con millones de filas. Si sus datos residen en una base de datos o detrás de una API — lo cual ocurre en cualquier aplicación seria — esta es la característica que más importa. El DataGrid incorporado no puede hacerlo. Tendría que construir toda la infraestructura de paginación y almacenamiento en caché por su cuenta. Hay un tutorial práctico en renderizar 1 millón de filas sin congelar la interfaz de usuario si quieres ver los detalles.Vista de tabla de flujo
Tableflow de Xceed es una vista de tabla animada con desplazamiento inercial suave (se siente como desplazarse en un teléfono, no en una aplicación de escritorio de 2008), encabezados de grupo fijos que permanecen visibles mientras navegas por datos agrupados, y reordenamiento de columnas mediante arrastrar y soltar con retroalimentación visual.<xcdg:DataGridControl ItemsSource="{Binding Employees}">
<xcdg:DataGridControl.View>
<xcdg:TableflowView AllowColumnChooser="True"
IsAlternatingRowStyleEnabled="True" />
</xcdg:DataGridControl.View>
</xcdg:DataGridControl>
Una propiedad para cambiar de vista. La AllowColumnChooser añade una interfaz de usuario para que los usuarios activen o desactiven la visibilidad de las columnas. Estos son pequeños detalles, pero marcan la diferencia entre una cuadrícula que se siente como una aplicación moderna y una que se siente como una hoja de cálculo de otra época.
Maestro-detalle con una sola barra de desplazamiento
¿Necesitas mostrar órdenes con sus artículos? ¿Departamentos con empleados? ¿Registros principales con registros secundarios? Xceed maneja esto con unDataRelationenfoque basado en donde las filas de detalle se expanden en línea, debajo de la fila principal, compartiendo una única barra de desplazamiento para toda la jerarquía.
<xcdg:DataGridControl x:Name="masterDetailGrid"
AutoCreateDetailConfigurations="True"
ReadOnly="True">
<xcdg:DataGridControl.DetailConfigurations>
<xcdg:DetailConfiguration RelationName="OrderDetails"
Title="Order Details">
<xcdg:DetailConfiguration.Columns>
<xcdg:Column FieldName="OrderId" Visible="False" />
<xcdg:Column FieldName="DetailId" Visible="False" />
</xcdg:DetailConfiguration.Columns>
</xcdg:DetailConfiguration>
</xcdg:DataGridControl.DetailConfigurations>
</xcdg:DataGridControl>
De fábrica, el DataGrid integrado no soporta el modo maestro-detalle en absoluto. La solución alternativa habitual —anidar cuadrículas dentro de plantillas de detalles de fila— te da múltiples barras de desplazamiento, navegación por teclado rota y una experiencia de depuración que a nadie le gusta. La implementación de Xceed evita todo eso. Hay documentación sobre el enlace de datos a tablas maestro-detalle con ejemplos de jerarquía más complejos.
18 temas predeterminados
El DataGrid integrado viene con un solo estilo, y es el mismo que tenía en 2010. Xceed ofrece 18 temas: Windows 10, Material Design, Aero, Metro Light/Dark, variantes de Office 2007 y más. Aplica uno en XAML:<xcdg:DataGridControl ItemsSource="{Binding Products}">
<xcdg:DataGridControl.View>
<xcdg:TableflowView>
<xcdg:TableflowView.Theme>
<tp5:Windows10Theme />
</xcdg:TableflowView.Theme>
</xcdg:TableflowView>
</xcdg:DataGridControl.View>
</xcdg:DataGridControl>
Puedes cambiar los temas en tiempo de ejecución y cada tema es un ensamblado separado: solo cargas lo que usas. Si necesitas que todos los controles estándar de WPF coincidan, Xceed también tiene un Paquete de temas Pro eso estiliza todo consistentemente.
La comparación honesta
| Característica | DataGrid WPF Integrado | Xceed DataGrid para WPF |
|---|---|---|
| Primera versión | 2010 (.NET 4.0) | 2007 |
| Última actualización de funciones | 2010 | Activo (v7.3, 2025) |
| .Soporte para .NET 10 | Sí | Sí |
| Virtualización de UI | Básico | Completo (incluyendo datos agrupados) |
| Virtualización de datos asíncrona | No | Sí |
| Desplazamiento suave | No | Sí (inercial) |
| Maestro-Detalle | No | Sí (barra de desplazamiento única) |
| Agrupación Multinivel | Limitado | Completo con resúmenes |
| Autofiltro (estilo Excel) | No | Sí |
| Temas integrados | 1 | 18 |
| Exportar a Excel/CSV | No | Sí |
| Impresión | No | Sí |
| Vistas 3D | No | Sí |
| Editores enriquecidos | Básico | Suite completa |
Cuando no necesitas nada de esto
Sería un error si no te dijera esto: no todos los proyectos necesitan Xceed. Si estás creando una herramienta interna pequeña, un prototipo rápido, o cualquier cosa donde la cuadrícula muestre unas pocas docenas de filas con ordenación básica — la incorporadaDataGrid está perfectamente bien. Es gratuito, ya está en el framework y manejará escenarios simples sin ningún problema.
Xceed tiene sentido cuando los requisitos son reales: grandes conjuntos de datos que necesitan carga asíncrona, datos jerárquicos con maestro-detalle, exportación a Excel para usuarios de negocios, temas que coincidan con una UI moderna o una aplicación que se mantendrá durante años y necesita una cuadrícula que siga el ritmo.
El precio es por desarrollador sin regalías por tiempo de ejecución. Puedes Solicitar una prueba gratuita para evaluarlo. El Paquete NuGet te pone en marcha en minutos.
El juego a largo plazo
WPF superó a UWP. Superó el ciclo de exageración de WinUI 3. Se está lanzando en .NET 10 con mejoras continuas, y no hay señales de que eso cambie. Las aplicaciones creadas sobre él no van a desaparecer; están demasiado integradas, son demasiado complejas y demasiado valiosas como para reescribirlas para el framework del año. Xceed DataGrid para WPF ha estado aquí durante 19 de esos años. El primer control comercial de WPF en el mercado, sigue activamente desarrollado y funcionando perfectamente en la última versión de .NET. Cuando eliges un WPF DataGrid para un proyecto que necesita perdurar, el historial importa tanto como la lista de características.¿Listo para probar Xceed DataGrid para WPF?
19 años de desarrollo enfocado en WPF. Más de 185 características. Ejecutándose en .NET 10 hoy. Comience su prueba gratuita Instalar vía NuGetPreguntas más frecuentes
¿WPF todavía es compatible en .NET 10?
Sí, y no solo se trata de “soporte” en el sentido de corrección de errores. Microsoft incluyó mejoras reales en .NET 10: el equipo reemplazó estructuras de datos internas con tipos base más rápidos, optimizó la representación de fuentes y aceleró el análisis de XAML. Mientras tanto, el repositorio dotnet/wpf acepta PRs de la comunidad y ve commits regulares. .NET 10 es una versión LTS, lo que significa que Microsoft dará soporte a WPF en esta versión hasta al menos noviembre de 2028.¿Se ha actualizado recientemente el DataGrid integrado de WPF?
Recibió su última nueva característica en 2010. Desde entonces: una ronda de correcciones de accesibilidad en .NET 4.7.1 y limpieza de código rutinaria. Si revisas problemas de GitHub de dotnet/wpf, encontrarás errores de DataGrid de larga data en torno a fugas de memoria y rendimiento de desplazamiento que aún están abiertos. Microsoft mantiene WPF la plataforma; pero el control DataGrid en sí está efectivamente concluido.¿Xceed DataGrid para WPF funciona en .NET 10?
Sí. Reorientamos un proyecto existente paranet10.0-windows y lo ejecutó sin cambios en el código. La cuadrícula, las animaciones de Tableflow, la expansión maestro-detalle, el cambio de tema y la virtualización de datos se comportaron de manera idéntica a .NET 8. La Paquete NuGet se instala y resuelve limpiamente en .NET 10.