private void ViewModelChanged(IImageSourceViewModel oldValue, IImageSourceViewModel newValue) { if (oldValue != null) { oldValue.PropertyChanged -= ViewModelOnPropertyChanged; if (oldValue.Load != null) { oldValue.Load.PropertyChanged -= ViewModelOnPropertyChanged; } } if (newValue != null) { newValue.PropertyChanged += ViewModelOnPropertyChanged; if (newValue.Load != null) { newValue.Load.PropertyChanged += ViewModelOnPropertyChanged; } } UpdateState(null); EnsureLoading(); }
public static bool GetIsRendered(IImageSourceViewModel model) { if (model == null) { return true; } return model.IsRendered; }
public static void SetIsRendered(IImageSourceViewModel model, bool value) { if (model == null) { return; } model.IsRendered = value; }
private async Task SetData() { try { var linkTransform = ServiceLocator.Current.GetServiceOrThrow<ILinkTransformService>(); var hashService = ServiceLocator.Current.GetServiceOrThrow<ILinkHashService>(); string newName = null; if (postData != null) { var boardLink = linkTransform.BoardLinkFromAnyLink(postData.Link); if (postData.Extensions != null) { var nameExtension = postData.Extensions.OfType<PostTreePosterExtension>().FirstOrDefault(); if (nameExtension != null) { newName = nameExtension.Name ?? ""; TripCode = nameExtension.Tripcode ?? ""; } } if (newName == null) { if (boardLink?.Engine != null) { newName = await GetDefaultName(boardLink, hashService); } } } if (newName == null) { newName = "Аноним"; } Name = newName; if (postData?.Extensions != null) { var flagExtension = postData.Extensions.OfType<PostTreeCountryExtension>().FirstOrDefault(); if (flagExtension != null) { Flag = new ImageSourceViewModel(new MediaLink() { Engine = postData?.Link?.Engine ?? "", IsAbsolute = false, RelativeUri = flagExtension.Uri }); if (!Flag.SetImageCache(StaticImageCache.IconsAndFlags)) { Flag.Load.Start(); } } var iconExtension = postData.Extensions.OfType<PostTreeIconExtension>().FirstOrDefault(); if (iconExtension != null) { Icon = new ImageSourceViewModel(new MediaLink() { Engine = postData?.Link?.Engine ?? "", IsAbsolute = false, RelativeUri = iconExtension.Uri }); if (!Icon.SetImageCache(StaticImageCache.IconsAndFlags)) { Icon.Load.Start(); } IconName = iconExtension.Description ?? ""; } } } catch (Exception ex) { DebugHelper.BreakOnError(ex); } }