J'ai un GridView lié à une collection d'objets qui chargent des images depuis le disque.
Les objets sont placés sur une pile lorsqu'ils deviennent visibles, et les images sont chargées de la pile de manière séquentielle.
Le problème est que GetFolderAsync() ne revient pas tant que le ScrollViewer contenant les objets n'a pas cessé de défiler.
Le code est le suivant :
public static async Task<StorageFolder> GetFileFolderAsync(String fileUrl)
{
try
{
string filePathRelative = DownloadedFilePaths.GetRelativeFilePathFromUrl(fileUrl);
string[] words = filePathRelative.Split('\\');
StorageFolder currentFolder = await DownloadedFilePaths.GetAppDownloadsFolder();
for (int i = 0; (i < words.Length - 1); i++)
{
//this is where it "waits" for the scroll viewer to slow down/stop
currentFolder = await currentFolder.GetFolderAsync(words[i]);
}
return currentFolder;
}
catch (Exception)
{
return null;
}
}
J'ai localisé le problème à la ligne où il récupère le dossier qui contient l'image. Est-ce que c'est la bonne façon d'obtenir un dossier imbriqué ?