Exemplo n.º 1
0
        /// <summary>
        ///     异步获取实例
        /// </summary>
        /// <returns></returns>
        public static async Task <MemoryViewModel> GetInstanceAsync(MemoryModel memoryModel = null)
        {
            var memoryViewModel = new MemoryViewModel(memoryModel)
            {
                _imageViewModels = new List <ImageViewModel>()
            };

            if (memoryModel?.ImageModels == null)
            {
                return(memoryViewModel);
            }
            foreach (var imageModel in memoryModel.ImageModels)
            {
                var imageViewModel = await ImageViewModel.GetInstanceAsync(imageModel);

                memoryViewModel._imageViewModels.Add(imageViewModel);
            }
            if (memoryViewModel._imageViewModels != null && memoryViewModel._imageViewModels.Count > 0)
            {
                memoryViewModel.CoverImage = memoryViewModel._imageViewModels[0].ThumbnailImage;
            }
            else
            {
                memoryViewModel.CoverImage = new BitmapImage(new Uri("ms-appx:///Assets/Gray.png"));
            }
            return(memoryViewModel);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     按月份分类图片
        /// </summary>
        private async Task GroupImageAsync()
        {
            // 先初始化所有图片成一个list
            var imageViewModels = new List <ImageViewModel>();

            foreach (var imageFolderList in _imageFolderLists)
            {
                foreach (var imageModel in imageFolderList.ImageModels)
                {
                    var imageViewModel = await ImageViewModel.GetInstanceAsync(imageModel);

                    imageViewModels.Add(imageViewModel);
                }
            }
            ImageMonthGroups = imageViewModels
                               .GroupBy(m => m.MonthYearDate, (key, list) => new ImageMonthGroup(key, list))
                               .OrderByDescending(m => m.Key.WholeDateTime.Year).ThenByDescending(m => m.Key.WholeDateTime.Month);
        }