protected override void InternalDock()
        {
            var root = Root as LayoutRoot;
            LayoutDocumentPane documentPane = null;

            if (root?.LastFocusedDocument != null && !Equals(root.LastFocusedDocument, this))
            {
                documentPane = root.LastFocusedDocument.Parent as LayoutDocumentPane;
            }

            if (documentPane == null)
            {
                documentPane = root.Descendents().OfType <LayoutDocumentPane>().FirstOrDefault();
            }


            bool added = false;

            if (root?.Manager.LayoutUpdateStrategy != null)
            {
                added = root.Manager.LayoutUpdateStrategy.BeforeInsertDocument(root, this, documentPane);
            }

            if (!added)
            {
                if (documentPane == null)
                {
                    throw new InvalidOperationException("Layout must contains at least one LayoutDocumentPane in order to host documents");
                }

                documentPane.Children.Add(this);
            }

            root?.Manager.LayoutUpdateStrategy?.AfterInsertDocument(root, this);
            base.InternalDock();
        }
 public LayoutDocumentPaneGroup(LayoutDocumentPane documentPane)
 {
     Children.Add(documentPane);
 }