ListBox vs ListView - comment choisir la liaison de données

318

J'envisage un ListBox ou un ListView pour une application WPF. Il semble soit prendre en charge la liaison de données et les modèles d'élément. Mon application dispose d'une simple liste d'éléments que j'ai l'intention de pouvoir rechercher / trier / filtrer en fonction des entrées de l'utilisateur. La démonstration de liaison de données ( http://msdn.microsoft.com/en-us/library/ms771319.aspx ) utilise un ListBox avec un CollectionViewSource.

Quelqu'un a-t-il des avantages / inconvénients pour quel contrôle utiliser et quand?

Geoff Cox
la source

Réponses:

364

Un ListView est un ListBox spécialisé (c'est-à-dire qu'il hérite de ListBox). Il vous permet de spécifier différentes vues plutôt qu'une simple liste. Vous pouvez soit rouler votre propre vue, soit utiliser GridView (pensez à une "vue détaillée" de type explorateur). Il s'agit essentiellement de la zone de liste à plusieurs colonnes, le cousin de la vue de liste du formulaire Windows.

Si vous n'avez pas besoin des fonctionnalités supplémentaires de ListView, vous pouvez certainement utiliser ListBox si vous affichez simplement une liste d'éléments (même si le modèle est complexe).

Philip Rieck
la source
4
Quelle est la différence entre cela et DataGrid? À moins que ListViewvous ne puissiez changer la vue dynamiquement (comme win-explorer - liste, détails, grandes icônes), je ne vois pas pourquoi l'utiliser ...
JobaDiniz