CollectionView
L'interfaccia utente dell'app multipiattaforma .NET (.NET MAUI) CollectionView è una visualizzazione per la presentazione di elenchi di dati usando specifiche di layout diverse. Mira a offrire un'alternativa più flessibile ed efficiente a ListView.
Lo screenshot seguente mostra un CollectionView oggetto che usa una griglia verticale a due colonne e consente più selezioni:
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 BindableLayout.
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 delle implementazioni alle CollectionView implementazioni con l'aiuto della tabella seguente:
Idea | 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 Configurare la selezione di elementi CollectionView. |
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 , FooterElement , FooterTemplate |
CollectionViewpuò 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 Visualizzare i dati raggruppati in un controllo 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 Controllare lo scorrimento in un controllo CollectionView. |