Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Fix for ClearTintColor NullReferenceException on ImageButton related to PR #1836 #1857

Merged
merged 11 commits into from
May 18, 2022
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ protected override void OnElementPropertyChanged(PropertyChangedEventArgs args)
base.OnElementPropertyChanged(args);

if (!args.PropertyName.Equals(IconTintColorEffect.TintColorProperty.PropertyName) &&
!args.PropertyName.Equals(Image.SourceProperty.PropertyName) &&
!args.PropertyName.Equals(ImageButton.SourceProperty.PropertyName))
!args.PropertyName.Equals(Image.SourceProperty.PropertyName) &&
!args.PropertyName.Equals(ImageButton.SourceProperty.PropertyName))
return;

ApplyTintColor();
Expand Down Expand Up @@ -53,17 +53,17 @@ void ClearTintColor()
switch (Control)
{
case UIImageView imageView:
Element.PropertyChanged -= ImageViewTintColorPropertyChanged;
if (imageView.Image != null)
{
Element.PropertyChanged -= ImageViewTintColorPropertyChanged;
imageView.Image = imageView.Image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
}

break;
case UIButton button:
if (button.ImageView.Image != null)
Element.PropertyChanged -= ButtonTintColorPropertyChanged;
if (button.ImageView?.Image != null)
{
Element.PropertyChanged -= ButtonTintColorPropertyChanged;
var originalImage = button.CurrentImage.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
button.SetImage(originalImage, UIControlState.Normal);
}
Expand Down