public static void OnContentChanged(BindableObject bindable, object oldValue, object newValue) { var self = (IControlTemplated)bindable; var newElement = (Element)newValue; if (self.ControlTemplate == null) { while (self.InternalChildren.Count > 0) { self.InternalChildren.RemoveAt(self.InternalChildren.Count - 1); } if (newValue != null) { self.InternalChildren.Add(newElement); } } else { if (newElement != null) { BindableObject.SetInheritedBindingContext(newElement, bindable.BindingContext); } } }
public static void OnBindingContextChanged(IImageElement image, VisualElement visualElement) { if (image.Source != null) { BindableObject.SetInheritedBindingContext(image.Source, visualElement?.BindingContext); } }
public static void ImageSourceChanged(BindableObject bindable, ImageSource newSource) { var visualElement = (VisualElement)bindable; if (newSource != null) { BindableObject.SetInheritedBindingContext(newSource, visualElement?.BindingContext); } visualElement?.InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged); }