Xamarin.Forms Introduzione a CollectionView

Scaricare l'esempio. Scaricare l'esempio

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

[! [Screenshot di un layout della griglia verticale CollectionView in iOS e Android] (introduction-images/verticalgrid-multipleselection.png "CollectionView vertical grid layout with multiple selection".](introduction-images/verticalgrid-multipleselection-large.png#lightbox "RaccoltaVisualizza il layout della griglia verticale con selezione multipla")

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

CollectionView è disponibile dalla Xamarin.Forms versione 4.3.

Importante

CollectionViewè disponibile in iOS e Android, ma è disponibile solo parzialmente nella piattaforma Windows Universal.

Differenze tra CollectionView e ListView

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

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

Passare da ListView a CollectionView

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

Concetto API ListView CollectionView
Dati ItemsSource Un CollectionView oggetto viene popolato con dati impostandone la ItemsSource proprietà . Per altre informazioni, vedere Popolare un oggetto CollectionView con dati.
Aspetto dell'elemento ItemTemplate L'aspetto di ogni elemento in un oggetto può essere definito CollectionView impostando la proprietà su ItemTemplate DataTemplate . Per altre informazioni, vedere Definire l'aspetto degli elementi.
Celle TextCell, ImageCell, ViewCell CollectionView non ha alcun concetto di celle e quindi nessun concetto di indicatori di diffusione. 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 specificati, 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 CollectionView oggetto 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, FooterElement, FooterTemplate CollectionView può presentare un'intestazione e un piè di pagina che scorrono con gli elementi dell'elenco, tramite le proprietà Header Footer , , e HeaderTemplate FooterTemplate . Per altre informazioni, vedere Intestazioni e piè di pagina.
Raggruppamento GroupDisplayBinding, GroupHeaderTemplate, GroupShortNameBinding, IsGroupingEnabled CollectionView visualizza correttamente i dati raggruppati impostandone IsGrouped la proprietà su true . Le intestazioni e i piè di pagina dei gruppi possono essere personalizzati impostando le GroupHeaderTemplate proprietà e sugli oggetti GroupFooterTemplate DataTemplate . Per altre informazioni, vedere Xamarin.Forms CollectionView Grouping.
Aggiornamento tramite trascinamento verso il basso IsPullToRefreshEnabled, IsRefreshing, RefreshAllowed, RefreshCommand, RefreshControlColor, BeginRefresh(), EndRefresh() La funzionalità pull per l'aggiornamento è supportata impostando CollectionView come figlio di un oggetto RefreshView . Per altre informazioni, vedere Eseguire il pull per aggiornare.
Voci del menu di scelta rapida ContextActions Le voci del menu di scelta rapida sono supportate impostando come visualizzazione radice in che definisce l'aspetto di ogni SwipeView elemento di dati in DataTemplate CollectionView . Per altre informazioni, vedere Menu di scelta rapida.
Scorrimento ScrollTo() CollectionView definisce i ScrollTo metodi che consentono di scorrere gli elementi nella visualizzazione. Per altre informazioni, vedere Scorrimento.