Come abbiamo visto nello script #46, la classe StorageFolder espone alcuni metodi per recuperare, in modo asincrono, le informazioni su file presenti nelle folder di sistema. Quando il numero dei file si fa più esteso possiamo utilizzare la classe FileInformationFactory, del namespace Windows.Storage.BulkAccess, che può offrire maggiori prestazioni.
Grazie al metodo GetVirtualizedFilesVector, ad esempio, possiamo creare un vettore virtualizzato di oggetti IStorageInformation che espongono le informazioni sul file oltre allo stream di una thumbnail, senza la necessità di chiamare altri metodi per ciascun item.
var pictures = KnownFolders.CameraRoll; var queryOptions = new QueryOptions(CommonFileQuery.OrderByName, new List<string>()); var fileQuery = pictures.CreateFileQueryWithOptions(queryOptions); var factory = new FileInformationFactory(fileQuery, ThumbnailMode.PicturesView); var allPictures = factory.GetVirtualizedFilesVector(); ll1.ItemsSource = allPictures;
Il valore di ritorno di GetVirtualizedFilesVector può essere associato direttamente come ItemSource di un ItemsControl.
Per renderizzare l'immagine è sufficiente bindare la proprietà Thumbnail ad un Image nel DataTemplate, e creare un BitmapImage con il relativo stream.
La virtualizzazione che il metodo adotta internamente permette l'accesso alle informazioni sui file solo quando queste sono effettivamente richieste attraverso il binding.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ordine e importanza per @layer in CSS
Miglioramenti agli screen reader e al contrasto in Angular
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Utilizzare gRPC su App Service di Azure
Creare alias per tipi generici e tuple in C#
Gestire il colore CSS con HWB
Utilizzare un service principal per accedere a Azure Container Registry
Routing statico e PreRendering in una Blazor Web App
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Creare una libreria CSS universale: Immagini
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Assegnare un valore di default a un parametro di una lambda in C#
I più letti di oggi
- Simulare Azure Cosmos DB in locale con Docker
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2024 - Milano
- .NET Conference Italia 2023 - Milano e Online