Xamarin.Forms Présentation de CollectionView
CollectionView
est une vue de présentation de listes de données à l’aide de différentes spécifications de disposition. Il vise à fournir une alternative plus flexible et performante à ListView
. Par exemple, les captures d’écran suivantes montrent un CollectionView
qui utilise une grille verticale à deux colonnes et qui permet une sélection multiple :
CollectionView
doit être utilisé pour présenter des listes de données qui nécessitent un défilement ou une sélection. Une disposition pouvant être liée peut être utilisée lorsque les données à afficher ne nécessitent pas de défilement ou de sélection. Pour plus d’informations, consultez Dispositions pouvant être liées dans Xamarin.Forms.
CollectionView
est disponible à partir de la Xamarin.Forms version 4.3.
Important
CollectionView
est disponible sur iOS et Android, mais n’est que partiellement disponible sur le plateforme Windows universelle.
Différences entre CollectionView et ListView
Bien que les CollectionView
API et ListView
soient similaires, il existe quelques différences notables :
CollectionView
a un modèle de disposition flexible, qui permet de présenter les données verticalement ou horizontalement, dans une liste ou une grille.CollectionView
prend en charge la sélection unique et la sélection multiple.CollectionView
n’a pas de concept de cellules. Au lieu de cela, un modèle de données est utilisé pour définir l’apparence de chaque élément de données dans la liste.CollectionView
utilise automatiquement la virtualisation fournie par les contrôles natifs sous-jacents.CollectionView
réduit la surface d’API deListView
. De nombreuses propriétés et événements deListView
ne sont pas présents dansCollectionView
.CollectionView
n’inclut pas de séparateurs intégrés.CollectionView
lève une exception si sonItemsSource
est mis à jour hors du thread d’interface utilisateur.
Passer de ListView à CollectionView
ListView
Les implémentations dans des applications existantes Xamarin.Forms peuvent être migrées vers des implémentations à CollectionView
l’aide du tableau suivant :
Concept | API ListView | CollectionView |
---|---|---|
Données | ItemsSource |
Un CollectionView est rempli avec des données en définissant sa ItemsSource propriété. Pour plus d’informations, consultez Remplir un Objet CollectionView avec des données. |
Apparence de l’élément | ItemTemplate |
L’apparence de chaque élément d’un CollectionView peut être définie en affectant à la ItemTemplate propriété la DataTemplate valeur . Pour plus d’informations, consultez Définir l’apparence de l’élément. |
Cellules | TextCell , ImageCell , ViewCell |
CollectionView n’a pas de concept de cellules et, par conséquent, aucun concept d’indicateurs de divulgation. Au lieu de cela, un modèle de données est utilisé pour définir l’apparence de chaque élément de données dans la liste. |
Séparateurs de lignes | SeparatorColor , SeparatorVisibility |
CollectionView n’inclut pas de séparateurs intégrés. Ceux-ci peuvent être fournis, si vous le souhaitez, dans le modèle d’élément. |
Sélection | SelectionMode , SelectedItem |
CollectionView prend en charge la sélection unique et la sélection multiple. Pour plus d’informations, consultez Xamarin.Forms CollectionView Selection. |
Hauteur de ligne | HasUnevenRows , RowHeight |
Dans un CollectionView , la hauteur de ligne de chaque élément est déterminée par la ItemSizingStrategy propriété . Pour plus d’informations, consultez Dimensionnement de l’élément. |
Mise en cache | CachingStrategy |
CollectionView utilise automatiquement la virtualisation fournie par les contrôles natifs sous-jacents. |
En-têtes et pieds de page | Header , HeaderElement , HeaderTemplate , Footer , FooterElement , FooterTemplate |
CollectionView peut présenter un en-tête et un pied de page qui défilent avec les éléments de la liste, via les Header propriétés , Footer , HeaderTemplate et FooterTemplate . Pour plus d’informations, consultez En-têtes et pieds de page. |
Regroupement | GroupDisplayBinding , GroupHeaderTemplate , GroupShortNameBinding , IsGroupingEnabled |
CollectionView affiche les données correctement regroupées en affectant à sa IsGrouped propriété la valeur true . Les en-têtes de groupe et les pieds de page de groupe peuvent être personnalisés en définissant les GroupHeaderTemplate propriétés et GroupFooterTemplate sur les DataTemplate objets . Pour plus d’informations, consultez Xamarin.Forms Regroupement CollectionView. |
Tirer pour actualiser | IsPullToRefreshEnabled , IsRefreshing , RefreshAllowed , RefreshCommand , RefreshControlColor , BeginRefresh() , EndRefresh() |
La fonctionnalité d’extraction pour actualiser est prise en charge en définissant comme CollectionView enfant d’un RefreshView . Pour plus d’informations, consultez Extraire pour actualiser. |
Éléments de menu contextuel | ContextActions |
Les éléments de menu contextuel sont pris en charge en définissant un SwipeView en tant que vue racine dans qui DataTemplate définit l’apparence de chaque élément de données dans le CollectionView . Pour plus d’informations, consultez Menus contextuels. |
Défilement | ScrollTo() |
CollectionView définit ScrollTo des méthodes, qui permettent de faire défiler les éléments dans l’affichage. Pour plus d’informations, consultez Défilement. |