public static void DisposeModelAndChildrenRenderers(this VisualElement view) { IVisualElementRenderer renderer; foreach (var child in view.Descendants().OfType <VisualElement>()) { renderer = XFPlatform.GetRenderer(child); XFPlatform.SetRenderer(child, null); if (renderer == null) { continue; } renderer.NativeView.RemoveFromSuperview(); renderer.Dispose(); } renderer = XFPlatform.GetRenderer(view); if (renderer != null) { renderer.NativeView.RemoveFromSuperview(); renderer.Dispose(); } XFPlatform.SetRenderer(view, null); }
public static IVisualElementRenderer GetOrCreateRenderer(this VisualElement bindable) { var renderer = XFPlatform.GetRenderer(bindable); if (renderer == null) { renderer = XFPlatform.CreateRenderer(bindable); XFPlatform.SetRenderer(bindable, renderer); } return(renderer); }