using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Ioc; using Microsoft.Practices.ServiceLocation; using System; using Tango.Integration.Services; using Tango.Logging; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.Modules; using Tango.MachineStudio.Common.Navigation; using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.Common.StudioApplication; using Tango.MachineStudio.UI.Authentication; using Tango.MachineStudio.UI.Modules; using Tango.MachineStudio.UI.Navigation; using Tango.MachineStudio.UI.Notifications; using Tango.MachineStudio.UI.StudioApplication; using Tango.MachineStudio.UI.SupervisingController; using Tango.MachineStudio.UI.ViewModels; using Tango.MachineStudio.UI.Views; namespace Tango.MachineStudio.UI { /// /// This class contains static references to all the view models in the /// application and provides an entry point for the bindings. /// public class ViewModelLocator { /// /// Initializes a new instance of the ViewModelLocator class. /// public ViewModelLocator() { ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); ////if (ViewModelBase.IsInDesignModeStatic) ////{ //// // Create design time view services and models //// SimpleIoc.Default.Register(); ////} ////else ////{ //// // Create run time view services and models //// SimpleIoc.Default.Register(); ////} SimpleIoc.Default.Unregister(); SimpleIoc.Default.Unregister(); SimpleIoc.Default.Unregister(); SimpleIoc.Default.Unregister(); SimpleIoc.Default.Unregister(); SimpleIoc.Default.Unregister(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); LogManager.RegisterLogger(new VSOutputLogger()); LogManager.RegisterLogger(new FileLogger()); //Register View (Supervising Controller Pattern). if (!ViewModelBase.IsInDesignModeStatic) { LogManager.Log(String.Format("Registering Supervising Controller {0}...", nameof(IMainView))); SimpleIoc.Default.Register(() => (IMainView)MainView.Self); } } public MainViewVM MainViewVM { get { return ServiceLocator.Current.GetInstance(); } } public LoadingViewVM LoadingViewVM { get { return ServiceLocator.Current.GetInstance(); } } public ShutdownViewVM ShutdownViewVM { get { return ServiceLocator.Current.GetInstance(); } } public LoginViewVM LoginViewVM { get { return ServiceLocator.Current.GetInstance(); } } public MachineConnectionViewVM MachineConnectionViewVM { get { return ServiceLocator.Current.GetInstance(); } } public MachineLoginViewVM MachineLoginViewVM { get { return ServiceLocator.Current.GetInstance(); } } } }