public ShellViewModel( SettingsViewModel settingsViewModelViewModel, ExperienceContainer experienceContainer, ExpCardCalculatorViewModel expCardCalculatorViewModel, IWindowManager windowManager) { if (settingsViewModelViewModel == null) { throw new ArgumentNullException(nameof(settingsViewModelViewModel)); } if (experienceContainer == null) { throw new ArgumentNullException(nameof(experienceContainer)); } if (expCardCalculatorViewModel == null) { throw new ArgumentNullException(nameof(expCardCalculatorViewModel)); } if (windowManager == null) { throw new ArgumentNullException(nameof(windowManager)); } this.windowManager = windowManager; ExperienceContainer = experienceContainer; ExpCardCalculatorViewModel = expCardCalculatorViewModel; SettingsViewModel = settingsViewModelViewModel; SettingsViewModel.ActivateWith(this); experienceUpdateService = new ExperienceUpdateService(); ExperienceComponents = new BindableCollection<IExperienceControl>(ExperienceContainer.ExperienceControls); timer.Tick += TimerOnTick; }
protected override void Configure() { container = new SimpleContainer(); container.Singleton<IWindowManager, MetroWindowManager>(); container.Singleton<IEventAggregator, EventAggregator>(); var baseExperienceData = new ExperienceData() { DisplayName = "Base Experience" }; var classExperienceData = new ExperienceData() { DisplayName = "Class Experience" }; IExperienceControl[] baseExperienceControls = GetExperienceControls(baseExperienceData, classExperienceData); ExperienceContainer experienceContainer = new ExperienceContainer(baseExperienceData, classExperienceData, baseExperienceControls); container.Handler<ShellViewModel>(simpleContainer => new ShellViewModel( container.GetInstance<SettingsViewModel>(), experienceContainer, new ExpCardCalculatorViewModel(experienceContainer), container.GetInstance<IWindowManager>())); // TODO - refactor settings view model to just take a collection of menuitems container.Handler<SettingsViewModel>(simpleContainer => new SettingsViewModel(baseExperienceControls)); }