using System; using System.Windows; using CommonServiceLocator; using GalaSoft.MvvmLight.Ioc; using HandyControlDemo.Data; using HandyControlDemo.Service; namespace HandyControlDemo.ViewModel { public class ViewModelLocator { public ViewModelLocator() { ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); SimpleIoc.Default.Register(); var dataService = ServiceLocator.Current.GetInstance(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(() => new GrowlDemoViewModel(), "GrowlDemo"); SimpleIoc.Default.Register(() => new GrowlDemoViewModel(MessageToken.GrowlDemoPanel), "GrowlDemoWithToken"); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(() => new ItemsDisplayViewModel(dataService.GetContributorDataList), "Contributors"); SimpleIoc.Default.Register(() => new ItemsDisplayViewModel(dataService.GetBlogDataList), "Blogs"); SimpleIoc.Default.Register(() => new ItemsDisplayViewModel(dataService.GetProjectDataList), "Projects"); SimpleIoc.Default.Register(() => new ItemsDisplayViewModel(dataService.GetWebsiteDataList), "Websites"); 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(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); } public static ViewModelLocator Instance => new Lazy(() => Application.Current.TryFindResource("Locator") as ViewModelLocator).Value; #region Vm public MainViewModel Main => ServiceLocator.Current.GetInstance(); public GrowlDemoViewModel GrowlDemo => ServiceLocator.Current.GetInstance("GrowlDemo"); public GrowlDemoViewModel GrowlDemoWithToken => ServiceLocator.Current.GetInstance("GrowlDemoWithToken"); public ImageBrowserDemoViewModel ImageBrowserDemo => ServiceLocator.Current.GetInstance(); public ComboBoxDemoViewModel ComboBoxDemo => ServiceLocator.Current.GetInstance(); public WindowDemoViewModel WindowDemo => ServiceLocator.Current.GetInstance(); public ItemsDisplayViewModel ContributorsView => ServiceLocator.Current.GetInstance("Contributors"); public ItemsDisplayViewModel BlogsView => ServiceLocator.Current.GetInstance("Blogs"); public ItemsDisplayViewModel ProjectsView => ServiceLocator.Current.GetInstance("Projects"); public ItemsDisplayViewModel WebsitesView => ServiceLocator.Current.GetInstance("Websites"); public StepBarDemoViewModel StepBarDemo => ServiceLocator.Current.GetInstance(); public PaginationDemoViewModel PaginationDemo => ServiceLocator.Current.GetInstance(); public ChatBoxViewModel ChatBox => new ChatBoxViewModel(); public CoverViewModel CoverView => ServiceLocator.Current.GetInstance(); public DialogDemoViewModel DialogDemo => ServiceLocator.Current.GetInstance(); public SearchBarDemoViewModel SearchBarDemo => ServiceLocator.Current.GetInstance(); public NotifyIconDemoViewModel NotifyIconDemo => ServiceLocator.Current.GetInstance(); public InteractiveDialogViewModel InteractiveDialog => ServiceLocator.Current.GetInstance(); public BadgeDemoViewModel BadgeDemo => ServiceLocator.Current.GetInstance(); public SideMenuDemoViewModel SideMenuDemo => ServiceLocator.Current.GetInstance(); public TabControlDemoViewModel TabControlDemo => new TabControlDemoViewModel(ServiceLocator.Current.GetInstance()); public NoUserViewModel NoUser => ServiceLocator.Current.GetInstance(); public CardDemoViewModel CardDemo => new CardDemoViewModel(ServiceLocator.Current.GetInstance()); public SpriteDemoViewModel SpriteDemo => ServiceLocator.Current.GetInstance(); public NotificationDemoViewModel NotificationDemo => ServiceLocator.Current.GetInstance(); public SplitButtonDemoViewModel SplitButtonDemo => ServiceLocator.Current.GetInstance(); #endregion } }