public INewTabHost<UIElement> GetNewHost(object partition, TabablzControl source)
        {
            var tabablzControl = new TabablzControl {DataContext = source.DataContext};

            Clone(source, tabablzControl);

            var newInterTabController = new InterTabController
            {
                Partition = source.InterTabController.Partition
            };
            Clone(source.InterTabController, newInterTabController);
            tabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController);            

            return new NewTabHost<UIElement>(tabablzControl, tabablzControl);
        }
        public INewTabHost <UIElement> GetNewHost(object partition, TabablzControl source)
        {
            var tabablzControl = new TabablzControl {
                DataContext = source.DataContext
            };

            Clone(source, tabablzControl);

            var newInterTabController = new InterTabController
            {
                Partition = source.InterTabController.Partition
            };

            Clone(source.InterTabController, newInterTabController);
            tabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController);

            return(new NewTabHost <UIElement>(tabablzControl, tabablzControl));
        }
        public INewTabHost<UIElement> GetNewHost(object partition, TabablzControl source)
        {
            TabControlVM vm = new TabControlVM();
            InterTabWindow mw = (InterTabWindow)Window.GetWindow(source);
            mw.TabWindowVM.TabControlVMs.Add(vm);
            var tabablzControl = new TabablzControl {DataContext = vm};
            tabablzControl.ItemsSource = vm.TabPanelVMs;

            Clone(source, tabablzControl);

            var newInterTabController = new InterTabController
            {
                Partition = source.InterTabController.Partition
            };
            Clone(source.InterTabController, newInterTabController);
            tabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController);

            return new NewTabHost<UIElement>(tabablzControl, tabablzControl);
        }
        public INewTabHost <UIElement> GetNewHost(object partition, TabablzControl source)
        {
            var tabablzControl = new TabablzControl {
                DataContext = source.DataContext
            };

            Clone(source, tabablzControl);

            if (source.InterTabController == null)
            {
                throw new InvalidOperationException("Source tab does not have an InterTabCOntroller set.  Ensure this is set on initial, and subsequently generated tab controls.");
            }

            var newInterTabController = new InterTabController
            {
                Partition = source.InterTabController.Partition
            };

            Clone(source.InterTabController, newInterTabController);
            tabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController);

            return(new NewTabHost <UIElement>(tabablzControl, tabablzControl));
        }