Con il rilascio della versione 4.3.0, Xamarin.Forms ha ufficialmente rimosso il vincolo sull'abilitazione degli experimental flag per l'utilizzo delle CollectionView.
Ma vediamo nel dettaglio cosa sono: per la maggior parte delle situazioni, una CollectionView, è un componente che si va a sostituire alla "vecchia" ListView. Consentendo di costruire interfacce più veloci, moderne, mantendo i controlli nativi. La novità più importante è la completa rimozione della ViewCell e quindi del suo template poco flessibile e articolato, dando piena libertà all'immaginazione dello sviluppatore, o del designer, tramite DataTemplate.
<CollectionView ItemsSource="{Binding items}">
<CollectionView.ItemTemplate>
<DataTemplate>
<StackLayout >
<Label Text="{Binding Name}" />
<Label Text="{Binding Value}" />
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>Con le CollectionView non solo il layout dell'elemento sarà a nostra completa discrezione, ma anche l'interazione con il componente, e le modalità di interazione con la lista saranno sotto il nostro pieno controllo.
Se prima, con le ListView, eravamo obbligati a layout con scroll verticali e spaziature fisse, ora possiamo scegliere sia l'orientamento che il numero di elementi da visualizzare.
Se ad esempio volessimo visualizzare una lista ci basterà scrivere:
<CollectionView.ItemsLayout> <ListItemsLayout ItemSpacing="4"></ListItemsLayout> <CollectionView.ItemsLayout>
Se viceversa, volessimo un layout a griglia, il nostro codice somiglierà più al seguente.
<CollectionView.ItemsLayout>
<GridItemsLayout
Span="2"
VerticalItemSpacing="4"
HorizontalItemSpacing="4"
></GridItemsLayout>
<CollectionView.ItemsLayout>Raramente visualizzeremo liste, o griglie, con pochi elementi, quindi potremmo aver bisogno di definire anche la modalità con cui è possibile visionarli. Tramite la proprietà Orientation si deciderà come la CollectionView si espanderà sulla nostra UI.
Migrare da ListView a CollectionView
Il primo grande concetto da tenere in considerazione è che la CollecionView implementa un set ridotto delle API disponibili all'interno della ListView, non è quindi garantita la piena compatibilità in caso di migrazione. Possiamo comunque affermare che nella gran parte dei casi questa scelta sarà completamente indolore, anzi, ne guadagneremo: il supporto alla selezione singola/multipla, il sistema di virtualizzazione fornito dai controlli nativi, possibilità di creare UX più interattive e con template completamente custom.
Attualmente la CollectionView è pienamente supportata dai sistemi iOS e Android, mentre per UWP non abbiamo ancora tutte le funzionalità disponibili. Per seguire le fasi di avanzamento possiamo utilizzare il seguente link: https://gist.github.com/hartez/7d0edd4182dbc7de65cebc6c67f72e14.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Anonimizzare i dati sensibili nei log di Azure Front Door
Gestire codice JavaScript con code splitting e lazy loading
Definire il metodo di rilascio in .NET Aspire
Managed deployment strategy in Azure DevOps
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Ottimizzare le performance usando Span<T> e il metodo Split
Integrare modelli AI in un workflow di GitHub
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Controllare la telemetria con .NET Aspire
Integrazione di Copilot in .NET Aspire
Gestire progetti NPM in .NET Aspire
Utilizzare DeepSeek R1 con Azure AI


