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
Cache temporanea in Javascript con oggetti
Self-healing degli unit test con Copilot in GitHub
Usare i generics di C# con la clausola nameof in modo semplificato
Raggruppare risorse in .NET Aspire
Utilizzo delle stepped value functions nel CSS
Ottimizzare gli indici con Automatic Index Compaction in Azure SQL Database
Impostare automaticamente l'altezza del font tramite CSS
Costruire endpoint SSE in ASP.NET Core
GitHub Copilot CLI in ambienti offline
Bloccare il traffico di rete in uscita dal runner di GitHub
Blue/Green Release in locale con .NET Aspire
Interazione con ReconnectModal in Blazor
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Permettere il Drag-and-drop solo su zone predefinite con Silverlight 2.0
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Personalizare l'icona e le funzionalità di un sito web per iOS e IE
- Caricamenti veloci da CDN e fallback locale con ASP.NET Core
- Utilizzare dati in formato XML in XAML
- Accedere a dati esposti con WebService con Silverlight 1.0


