Xamarin.Forms Introducción a CollectionView
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:
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:
CollectionViewtiene un modelo de diseño flexible, que permite que los datos se presenten vertical u horizontalmente, en una lista o una cuadrícula.CollectionViewadmite la selección única y múltiple.CollectionViewno 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.CollectionViewutiliza automáticamente la virtualización proporcionada por los controles nativos subyacentes.CollectionViewreduce la superficie de API deListView. Muchas propiedades y eventos deListViewno están presentes enCollectionView.CollectionViewno incluye separadores integrados.CollectionViewproducirá una excepción si su Xamarin_FormsCollectionView_ItemsView_ItemsSource" data-linktype="absolute-path">se actualiza fuera del subproceso deItemsSourceinterfaz 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. |
Descarga del ejemplo
en iOS y Android cuadrícula vertical con selección múltiple