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
Effettuare il refresh dei dati di una QuickGrid di Blazor
Gestire il colore CSS con HWB
Creare una libreria CSS universale: Nav menu
.NET Conference Italia 2024
Gestire la cancellazione di una richiesta in streaming da Blazor
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Rendere le variabili read-only in una pipeline di Azure DevOps
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Proteggere le risorse Azure con private link e private endpoints
Introduzione ai web component HTML
I più letti di oggi
- Anonimizzare i dati sensibili nei log di Azure Front Door
- Annunciato Visual Studio 2013: la prima preview a fine mese a Build
- Loggare le query più lente con Entity Framework
- Utilizzare WhenEach per processare i risultati di una lista di task
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!