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:
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 diListView
. Molte proprietà ed eventi diListView
non sono presenti inCollectionView
.CollectionView
non include separatori predefiniti.CollectionView
genererà un'eccezione se il relativoItemsSource
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 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 nell'elenco, tramite le Header proprietà , Footer HeaderTemplate , e FooterTemplate . Per altre informazioni, vedere Intestazioni e piè di pagina. |
Raggruppamento | GroupDisplayBinding , GroupHeaderTemplate , GroupShortNameBinding IsGroupingEnabled |
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 , RefreshCommand RefreshControlColor , , 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. |