diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs index 8e451cdce..b97825d34 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -35,6 +35,7 @@ using Tango.MachineStudio.UI.Windows; using Tango.PMR.Stubs; using Tango.Settings; using Tango.SharedUI; +using Tango.SharedUI.Controls; using Tango.SharedUI.Helpers; using Tango.Transport.Adapters; @@ -497,6 +498,16 @@ namespace Tango.MachineStudio.UI.ViewModels { IsMenuOpened = false; + if (module != null) + { + if (!(MainView.Self as MainView).TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) + { + FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement; + NavigationControl.SetNavigationName(view, module.Name); + (MainView.Self as MainView).TransitionControl.Elements.Add(view); + } + } + foreach (var m in StudioModuleLoader.AllModules.Where(x => x != module)) { m.IsLoaded = false; @@ -507,12 +518,12 @@ namespace Tango.MachineStudio.UI.ViewModels CurrentModule = module; CurrentModule.IsLoaded = true; IsModuleLoaded = true; - View.NavigateToModule(module); + (MainView.Self as MainView).TransitionControl.NavigateTo(module.Name); } else { IsModuleLoaded = false; - View.NavigateToModule(null); + (MainView.Self as MainView).TransitionControl.NavigateTo("Home"); } } @@ -538,18 +549,21 @@ namespace Tango.MachineStudio.UI.ViewModels module.InNewWindow = true; - var parent = (MainView.Self as MainView).TransitionControl.Controls.SingleOrDefault(x => x.Tag.ToString() == module.Name).Content as Grid; + if (!(MainView.Self as MainView).TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) + { + FrameworkElement v = Activator.CreateInstance(module.MainViewType) as FrameworkElement; + NavigationControl.SetNavigationName(v, module.Name); + (MainView.Self as MainView).TransitionControl.Elements.Add(v); + } - var view = parent.Children[0] as FrameworkElement; - parent.Children.Remove(view); + var view = (MainView.Self as MainView).TransitionControl.GetAndDetach(module.Name); - ModuleWindowVM vm = new ModuleWindowVM(module, parent); + ModuleWindowVM vm = new ModuleWindowVM(module); ModuleWindow window = new ModuleWindow(this, vm, view); window.Closing += (x, y) => { window.grid.Children.Remove(view); - parent.Children.Add(view); module.InNewWindow = false; }; |
