public void ChangeCollection(List <string> folderPath) { Scrolled = null; // Некий класс-фильтр вернет список файлов. Класс-фильтр сам решает, какие типы грузить, загружать подпапки или нет //List<string> files = new List<string>(); Images = new List <IImageStructure>(); var _tmp = new List <IImageStructure>(); // Кормим менеджер путем к файлу, получаем кешированную копию, генерим АвтоСтаки и складываем в список using (AlbumClassLibrary.CacheManager.CacheManager manager = new AlbumClassLibrary.CacheManager.CacheManager(this.cacheFilePath)) { foreach (var item in folderPath) { var n = new ClassDir.ImageStructure(manager.GetSize(item), item); n.Size = this.CurrentSize; this.Scrolled += n.VisabilityChanged; n.ImageNeeded += N_ImageNeeded; _tmp.Add(n); } } this.Images = _tmp; }
private async void N_ImageNeeded(object sender, EventArgs e) { await Task.Run(() => { ClassDir.ImageStructure image = sender as ClassDir.ImageStructure; using (AlbumClassLibrary.CacheManager.CacheManager manager = new AlbumClassLibrary.CacheManager.CacheManager(this.cacheFilePath)) { image.LoadMaxSizedImage(manager.GetImage(image.OriginalFilepath)); } }); }