public Page CreatePageInNewWindow <PageType> (string windowTitle, params object[] pageConstructorArgs) where PageType : Page
        {
            var nwPage            = (PageType)Activator.CreateInstance(typeof(PageType), pageConstructorArgs);
            var nwContainerWindow = new PageContainerWindow(nwPage, windowTitle);

            pageContainers.Add(nwPage, nwContainerWindow);
            nwContainerWindow.Show();

            return(nwPage);
        }
        public bool TryUnBound(Page page, string windowTitle)
        {
            if (HasOwnWindow(page))
            {
                return(false);
            }

            var eventArgs = new PageBindingChangeEventArgs()
            {
                page   = page,
                action = PageBindingChangeEventArgs.ActionType.Unbind
            };

            PageBindingChange?.Invoke(this, eventArgs);

            var nwContainerWindow = new PageContainerWindow(page, windowTitle);

            pageContainers.Add(page, nwContainerWindow);
            nwContainerWindow.Show();

            return(eventArgs.handled);
        }