2010-07-04 5 views
12

Quels sont les principaux avantages de l'utilisation d'un contrôle DataGrid sur l'utilisation d'une ListView? Quand devrait-on utiliser chacun d'eux?Listview vs datagrid

Répondre

10

J'ai abandonné ListView pour le DataGrid dans .Net 4, car il est plus simple de modéliser les colonnes.

La mise en page est également plus sensible, et je n'ai pas besoin de me souvenir de définir HorizontalContentAlignment sur Stretch pour que le contenu de la cellule couvre la cellule. Une autre fonctionnalité intéressante est l'édition de modèles sur le DataGrid, ce qui me soulage de devoir utiliser un CellTemplateSelector pour obtenir un contrôle différent lors de l'édition de la cellule.

+0

Merci pour votre information. Y a-t-il des différences avec les événements pour les changements de données dans les colonnes, la facilité de tri/filtrage des données ou est-ce que tout est pareil? –

+0

Je ne suis pas sûr de cela, puisque j'utilise la liaison à un modèle pour trier, filtrer et obtenir des notifications de mise à jour des données. Mais pour cela, ListView et DataGrid apparaissent similaires. – codekaizen

+0

Mon application actuelle a une base de données> Entity Framework> Observable collection (in viewmodel)> listview. Ce qui est important pour moi, c'est que je voudrais avoir les données dans la mise à jour de datagrid quand les données de base de données changent. Je ne sais pas à quel point c'est simple à faire, mais je me penche sur la question maintenant. –

11

Quelques points à considérer que Colin Eber ont déclaré dans DataGrid vs GridView discussion:

  • ListView (GridView) est un contrôle en lecture seule hors-la-box.The solution standard serait de synchroniser la liste avec a « détails View » composés de TextBoxes
  • la grille de données permet la modification sur place des données
  • la grille de données effectue les modifications transaction (la ligne est traitée comme un atome)
  • Le soutien DataGrid génération colonne auto
  • Le DataGrid a un élément RowDetails (si vous aimez ce genre de chose!)
  • Le DatGrid supporte à peu près tout le ListView fait, plusieurs modes de sélection, style, etc ...

Et une autre importante:

  • Le DataGrid a construit en charge le tri en cliquant sur en-tête de colonne. Alors que l'ajout de tri à ListView/GridView est absolutely possible, je préfère plutôt avoir ce genre de choses prêtes à l'emploi dans DataGrid.
+1

qu'en est-il des performances? un Datagrid avec 200 éléments (8 colonnes) groupés par une colonne a besoin de 20s + sur mon ordinateur pour le rendu. – Firo

+1

@Firo: Ce n'est certainement pas un problème de DataGrid. Le goulot d'étranglement des performances doit être ailleurs. – Liero

+1

@Liero J'ai échangé la grille de données avec la grille de données wpf toolagrid et le problème est parti. C'est définitivement un problème avec la base de données wpf simple. J'ai testé qu'il faut des années pour mesurer avec les groupements – Firo

Questions connexes