2010-05-16 12 views
2

je dois afficher une séquence de longueur inconnue des dictionnaires avec les clés inconnues efficacement dans une grille de données. Cette séquence est le résultat d'une requête LINQ potentiellement lente qui peut contenir un nombre quelconque de résultats.En utilisant VirtualMode sur un DataGridView lorsque le nombre de lignes/colonnes ne sait pas

Au début, je pensais que VirtualMode sur DataGridView était ce que je cherchais mais il semble que le nombre de lignes et de colonnes doit être connu d'avance. J'ai essayé d'ajouter une ligne et une colonne, puis d'en ajouter d'autres au besoin à partir de l'événement CellValueNeeded mais cela ne fonctionne pas.

Est-ce même possible avec VirtualMode? Ou ai-je besoin d'estimer le nombre de lignes sont visibles à l'écran et créer manuellement les lignes/colonnes? Et si oui, comment puis-je assurer qu'une barre de défilement verticale est présent et réagir de manière appropriée lorsqu'un utilisateur utilise?

Répondre

0

Vous pouvez simplement avoir une collection IBindingList qui alertera la grille de mise à jour que les lignes sont ajoutées. Donc vous interrogez en utilisant LINQ et peuplez cette collection qui peut être n'importe quel nombre 'N'. Au cours de la charge initiale, peut être fixé quelques lignes fixes à la collection comme l'ensemble d'enregistrement initial, disons 1000, puis continuer à ajouter des lignes à la collection que vous itérer votre requête LINQ.

-Fahad