Xamarin.Forms Introduzione a CollectionView

CollectionView è una vista per presentare elenchi di dati usando specifiche di layout diverse. Mira a offrire un'alternativa più flessibile ed efficiente a ListView. Ad esempio, gli screenshot seguenti mostrano un CollectionView oggetto che usa una griglia verticale a due colonne e che consente la selezione multipla:

Screenshot di un layout griglia verticale CollectionView in iOS e Android

CollectionView deve essere utilizzato per presentare elenchi di dati che richiedono lo scorrimento o la selezione. Un layout associabile può essere usato quando i dati da visualizzare non richiedono lo scorrimento o la selezione. Per altre informazioni, vedere Layout associabili in Xamarin.Forms.

CollectionView è disponibile dalla Xamarin.Forms versione 4.3.

Importante

CollectionViewè disponibile in iOS e Android, ma è disponibile solo parzialmente nel piattaforma UWP (Universal Windows Platform).

Differenze di CollectionView e ListView

Anche se le CollectionView API e ListView sono simili, esistono alcune differenze significative:

  • CollectionView ha un modello di layout flessibile, che consente di presentare i dati verticalmente o orizzontalmente, in un elenco o in una griglia.
  • CollectionView supporta la selezione singola e multipla.
  • CollectionView non ha alcun concetto di cellule. Viene invece usato un modello di dati per definire l'aspetto di ogni elemento di dati nell'elenco.
  • CollectionView utilizza automaticamente la virtualizzazione fornita dai controlli nativi sottostanti.
  • CollectionView riduce la superficie DELL'API di ListView. Molte proprietà ed eventi di ListView non sono presenti in CollectionView.
  • CollectionView non include separatori predefiniti.
  • CollectionView genererà un'eccezione se il relativo ItemsSource viene aggiornato fuori dal thread dell'interfaccia utente.

Passare da ListView a CollectionView

ListViewÈ possibile eseguire la migrazione CollectionView delle implementazioni nelle applicazioni esistenti Xamarin.Forms con l'aiuto della tabella seguente:

Concetto API ListView CollectionView
Dati ItemsSource Un CollectionView oggetto viene popolato con i dati impostandone la ItemsSource proprietà . Per altre informazioni, vedere Popolare un oggetto CollectionView con i dati.
Aspetto dell'elemento ItemTemplate L'aspetto di ogni elemento di un CollectionView oggetto può essere definito impostando la ItemTemplate proprietà su un oggetto DataTemplate. Per altre informazioni, vedere Definire l'aspetto dell'elemento.
Cells TextCell, ImageCell, ViewCell CollectionView non ha alcun concetto di cellule, e quindi nessun concetto di indicatori di divulgazione. Viene invece usato un modello di dati per definire l'aspetto di ogni elemento di dati nell'elenco.
Separatori di riga SeparatorColor, SeparatorVisibility CollectionView non include separatori predefiniti. Questi elementi possono essere forniti, se necessario, nel modello di elemento.
Selezione SelectionMode, SelectedItem CollectionView supporta la selezione singola e multipla. Per altre informazioni, vedere Xamarin.Forms CollectionView Selection.
Altezza riga HasUnevenRows, RowHeight In un CollectionViewoggetto l'altezza della riga di ogni elemento è determinata dalla ItemSizingStrategy proprietà . Per altre informazioni, vedere Dimensionamento degli elementi.
Memorizzazione nella cache CachingStrategy CollectionView usa automaticamente la virtualizzazione fornita dai controlli nativi sottostanti.
Intestazioni e piè di pagina Header, HeaderElement, HeaderTemplate, Footer, FooterElementFooterTemplate CollectionViewpuò presentare un'intestazione e un piè di pagina che scorrono con gli elementi nell'elenco, tramite le Headerproprietà , FooterHeaderTemplate, e FooterTemplate . Per altre informazioni, vedere Intestazioni e piè di pagina.
Raggruppamento GroupDisplayBinding, GroupHeaderTemplate, GroupShortNameBindingIsGroupingEnabled CollectionView visualizza correttamente i dati raggruppati impostandone la IsGrouped proprietà su true. Le intestazioni di gruppo e i piè di pagina del gruppo possono essere personalizzate impostando le GroupHeaderTemplate proprietà e GroupFooterTemplate sugli DataTemplate oggetti . Per altre informazioni, vedere Xamarin.Forms Raggruppamento CollectionView.
Funzionalità Trascina verso il basso IsPullToRefreshEnabled, IsRefreshing, RefreshAllowed, RefreshCommandRefreshControlColor, , BeginRefresh()EndRefresh() La funzionalità pull per l'aggiornamento è supportata impostando come CollectionView figlio di un oggetto RefreshView. Per altre informazioni, vedere Eseguire il pull per l'aggiornamento.
Voci del menu di scelta rapida ContextActions Le voci di menu di scelta rapida sono supportate impostando come SwipeView visualizzazione radice in DataTemplate che definisce l'aspetto di ogni elemento di dati in CollectionView. Per altre informazioni, vedere Menu di scelta rapida.
Scorrimento in corso ScrollTo() CollectionView definisce ScrollTo i metodi che consentono di scorrere gli elementi nella visualizzazione. Per altre informazioni, vedere Scorrimento.