public TabablzControl GetNew(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(tabablzControl); }
private static IEnumerable <Tuple <Guid, TabablzControl> > BuildLayout( TabablzControl intoTabablzControl, LayoutStructureBranch layoutStructureBranch, IDictionary <Guid, LayoutStructureBranch> layoutStructureBranchIndex) { var newSiblingTabablzControl = new TabablzControl(); var branchResult = Layout.Branch(intoTabablzControl, newSiblingTabablzControl, layoutStructureBranch.Orientation, false, layoutStructureBranch.Ratio); var newInterTabController = new InterTabController { Partition = intoTabablzControl.InterTabController.Partition, InterTabClient = intoTabablzControl.InterTabController.InterTabClient }; CaliburnInterLayoutClient.Clone(intoTabablzControl.InterTabController, newInterTabController); newSiblingTabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController); if (layoutStructureBranch.ChildFirstBranchId.HasValue) { var firstChildBranch = layoutStructureBranchIndex[layoutStructureBranch.ChildFirstBranchId.Value]; foreach (var tuple in BuildLayout(intoTabablzControl, firstChildBranch, layoutStructureBranchIndex)) { yield return(tuple); } } else if (layoutStructureBranch.ChildFirstTabSetId.HasValue) { SetTabSetId(intoTabablzControl, layoutStructureBranch.ChildFirstTabSetId.Value); yield return(new Tuple <Guid, TabablzControl>(layoutStructureBranch.ChildFirstTabSetId.Value, intoTabablzControl)); } if (layoutStructureBranch.ChildSecondBranchId.HasValue) { var secondChildBranch = layoutStructureBranchIndex[layoutStructureBranch.ChildSecondBranchId.Value]; foreach (var tuple in BuildLayout(branchResult.TabablzControl, secondChildBranch, layoutStructureBranchIndex)) { yield return(tuple); } } else if (layoutStructureBranch.ChildSecondTabSetId.HasValue) { SetTabSetId(newSiblingTabablzControl, layoutStructureBranch.ChildSecondTabSetId.Value); yield return(new Tuple <Guid, TabablzControl>(layoutStructureBranch.ChildSecondTabSetId.Value, newSiblingTabablzControl)); } }
public INewTabHost <UIElement> GetNewHost(object partition, TabablzControl source) { TabablzControl tabablzControl1 = new TabablzControl(); object dataContext = source.DataContext; tabablzControl1.DataContext = dataContext; TabablzControl tabablzControl2 = tabablzControl1; DefaultInterLayoutClientEx.Clone((DependencyObject)source, (DependencyObject)tabablzControl2); InterTabController interTabController = new InterTabController() { Partition = source.InterTabController.Partition }; DefaultInterLayoutClientEx.Clone((DependencyObject)source.InterTabController, (DependencyObject)interTabController); tabablzControl2.SetCurrentValue(TabablzControl.InterTabControllerProperty, (object)interTabController); return((INewTabHost <UIElement>) new NewTabHost <UIElement>((UIElement)tabablzControl2, tabablzControl2)); }
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)); }
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)); }