示例#1
0
        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);
                }
            }
        }
示例#2
0
 public static void OnBindingContextChanged(IImageElement image, VisualElement visualElement)
 {
     if (image.Source != null)
     {
         BindableObject.SetInheritedBindingContext(image.Source, visualElement?.BindingContext);
     }
 }
示例#3
0
        public static void ImageSourceChanged(BindableObject bindable, ImageSource newSource)
        {
            var visualElement = (VisualElement)bindable;

            if (newSource != null)
            {
                BindableObject.SetInheritedBindingContext(newSource, visualElement?.BindingContext);
            }

            visualElement?.InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
        }