void Initialize()
        {
            OnceInitializeAction = null;

            _nativePage = Container;

            _formsLayout.Layout(_nativePage.Bounds.ToRectangle());

            foreach (var child in _formsLayout)
            {
                var renderer = PlatformUtility.GetOrCreateNativeView(child);
                _formsLayout.LayoutChild(child);
                SetLayoutAlignment(renderer.NativeView, _nativePage, child);
            }
        }
        protected override void OnDetached()
        {
            _page.SizeChanged   -= PageSizeChanged;
            _page.LayoutChanged -= PageLayoutChanged;
            _formsLayout.Parent  = null;

            foreach (var child in _formsLayout)
            {
                PlatformUtility.DisposeModelAndChildrenRenderers(child);
            }

            _formsLayout = null;
            _nativePage  = null;
            _page        = null;

            System.Diagnostics.Debug.WriteLine($"Detached {GetType().Name} from {Element.GetType().FullName}");
        }