2011-03-25 24 views
8

He estado usando varias redes de datos comerciales WPF en el pasado y debo decir que el rendimiento ha sido bastante decepcionante y lento. Me gustaría poder cargar hasta un millón de registros y poder desplazarme hacia arriba y hacia abajo rápidamente sin ningún retraso.¿Cómo crear un control rápido de WPF Datagrid desde cero?

Algunos desarrolladores de Guru WPF me han dicho que, de hecho, es posible crear una WPF Datagrid desde cero, con muchas menos funciones que las comerciales, centrada principalmente en el rendimiento.

¿Pero cómo procedería? Me han dicho que el desarrollo de estas grillas de datos no se debe construir de la forma habitual de utilizar ItemsControl, lo que conduce a los mismos problemas de rendimiento que las grillas de wpf existentes.

¿Es un gurú aquí para dirigirme en la dirección correcta?

Actualización:

Debido a que una persona se menciona la duda de la necesidad de un millón de registros, ahora muchos están saltando en el mismo carro. Lo que me interesa es crear una Datagrid rápida de baja latencia con apenas cualquier característica, que en teoría puede contener hasta un millón de registros.

No necesito ningún tipo de clasificación, filtrado o de lo contrario, todo lo que necesito es velocidad. Y ahí es donde necesitaba la guía de un Gurú. Sé lo que es Data Virtualization, simplemente no es suficiente.

+1

Su problema no está con los controles disponibles, es el millón de registros. La dirección correcta sería construir una interfaz de usuario. –

+1

En serio, ¿qué sentido tiene tener la capacidad de desplazarse con fluidez a través de un millón de entradas si no puede encontrar nada porque está viendo * un millón de entradas *? –

+0

@ H.B. : El punto es que un montón de WinForms DataGrids pueden hacer esto con fluidez (y sí, la lista ordenada de escaneo puede ser útil incluso con un millón de entradas) – EFraim

Respuesta

7

Sospecho que desea ver el VirtualisingStackPanel como parte de su implementación, solo representa los controles a medida que se vuelven visibles.

Sin embargo, un millón de registros suena como demasiado para que cualquier usuario lo necesite en pantalla en un momento dado. Repensaría seriamente mi diseño de interfaz de usuario, pero así soy yo.

+1

+1 absolutamente cierto: enfoque de datos virtuales. –

+0

La función de virtualización de la cuadrícula de datos tal como se hace en Infragistics, etc. simplemente no es lo suficientemente eficiente. – Houman

+3

Bueno, ¿sabes qué aspectos hacen que no funcione? ¿Cuál es el cuello de la botella? ¿Has determinado que definitivamente es la UI? ¿Podría ser que obtener 1 millón de registros de una base de datos o de una red también podría ser parte del problema? – BenCr