Xamarin.Forms Introducción a CollectionView

Ejemplo de descarga Descarga del ejemplo

CollectionView es una vista para presentar listas de datos con diferentes especificaciones de diseño. Su objetivo es proporcionar una alternativa más flexible y de rendimiento a ListView . Por ejemplo, en las capturas de pantalla siguientes se muestra un que usa una cuadrícula vertical de dos CollectionView columnas y que permite la selección múltiple:

con selección múltiple Captura de pantalla de un diseño de cuadrículavertical collectionView,en iOS y Android cuadrícula vertical con selección múltiple

CollectionView debe usarse para presentar listas de datos que requieren desplazamiento o selección. Se puede usar un diseño enlazable cuando los datos que se muestran no requieren desplazamiento ni selección. Para obtener más información, vea Bindable Layouts in Xamarin.Forms.

CollectionView está disponible en Xamarin.Forms la versión 4.3.

Importante

CollectionViewestá disponible en iOS y Android, pero solo está CollectionView en la Plataforma de Windows universal.

Diferencias de CollectionView y ListView

Aunque las CollectionViewListView API y son similares, hay algunas diferencias importantes:

  • CollectionView tiene un modelo de diseño flexible, que permite que los datos se presenten vertical u horizontalmente, en una lista o una cuadrícula.
  • CollectionView admite la selección única y múltiple.
  • CollectionView no tiene ningún concepto de celdas. En su lugar, se usa una plantilla de datos para definir la apariencia de cada elemento de datos de la lista.
  • CollectionView utiliza automáticamente la virtualización proporcionada por los controles nativos subyacentes.
  • CollectionView reduce la superficie de API de ListView . Muchas propiedades y eventos de ListView no están presentes en CollectionView .
  • CollectionView no incluye separadores integrados.
  • CollectionViewproducirá una excepción si su Xamarin_Forms CollectionView _ItemsView_ItemsSource" data-linktype="absolute-path">se actualiza fuera del subproceso de ItemsSource interfaz de usuario.

Pasar de ListView a CollectionView

ListView Las implementaciones de Xamarin.Forms las aplicaciones existentes se pueden migrar a CollectionView implementaciones con la ayuda de la tabla siguiente:

Concepto API de las vistas de lista CollectionView
data ItemsSource Se CollectionView rellena con datos estableciendo su propiedad ItemsSource . Para obtener más información, vea Rellenar una clase CollectionView con datos.
Apariencia del elemento ItemTemplate La apariencia de cada elemento de se CollectionView puede definir estableciendo la ItemTemplate propiedad en DataTemplate . Para obtener más información, vea Definir la apariencia del elemento.
Celdas TextCell, ImageCell, ViewCell CollectionView no tiene ningún concepto de celdas y, por tanto, ningún concepto de indicadores de divulgación. En su lugar, se usa una plantilla de datos para definir la apariencia de cada elemento de datos de la lista.
Separadores de filas SeparatorColor, SeparatorVisibility CollectionView no incluye separadores integrados. Se pueden proporcionar, si lo desea, en la plantilla de elemento.
Número de selección SelectionMode, SelectedItem CollectionView admite la selección única y múltiple. Para obtener más información, vea Xamarin.Forms CollectionView Selection.
Alto de fila HasUnevenRows, RowHeight En , CollectionView el alto de fila de cada elemento viene determinado por la propiedad ItemSizingStrategy . Para obtener más información, vea Tamaño de elemento.
Almacenamiento en memoria caché CachingStrategy CollectionView usa automáticamente la virtualización proporcionada por los controles nativos subyacentes.
Encabezados y pies de página Header, HeaderElement, HeaderTemplate, Footer, FooterElement, FooterTemplate CollectionView puede presentar un encabezado y un pie de página que se desplazan con los elementos de la lista, a través de las propiedades HeaderFooter , , y HeaderTemplateFooterTemplate . Para obtener más información, vea Encabezados y pies de página.
Agrupación GroupDisplayBinding, GroupHeaderTemplate, GroupShortNameBinding, IsGroupingEnabled CollectionView muestra los datos agrupados correctamente estableciendo su IsGrouped propiedad en true . Los encabezados de grupo y los pies de página de grupo se pueden personalizar estableciendo las GroupHeaderTemplate propiedades y en objetos GroupFooterTemplateDataTemplate . Para obtener más información, vea Xamarin.Forms CollectionView Grouping.
Extraer para actualizar IsPullToRefreshEnabled, IsRefreshing, RefreshAllowed, RefreshCommand, RefreshControlColor, BeginRefresh(), EndRefresh() La funcionalidad de extracción para actualizar se admite CollectionView estableciendo como elemento secundario de RefreshView . Para obtener más información, vea Extracción para actualizar.
Elementos del menú contextual ContextActions Los elementos de menú contextual se admiten estableciendo como la vista raíz en que define la apariencia de cada SwipeView elemento de datos en DataTemplateCollectionView . Para más información, consulte Menús contextuales.
Desplazamiento ScrollTo() CollectionView define ScrollTo métodos, que desplazan elementos a la vista. Para obtener más información, vea Scrolling.