/// <summary> /// Update the current view model to 'viewModel' /// </summary> /// <param name="viewModel">The new ViewModel</param> private void ChangeViewModel(IScreenViewModel viewModel) { // Make sure the collection of View Models contains this viewModel if (!ScreensViewModels.Contains(viewModel)) { ScreensViewModels.Add(viewModel); } // Use the selected view model CurrentScreenViewModel = ScreensViewModels.FirstOrDefault(vm => vm == viewModel); }
public ApplicationViewModel(Person connectedPerson, IMessageBoxService messageBoxService) : base(messageBoxService) { _connectedPersonID = connectedPerson.personID; // Create a list of all possible screens List <IScreenViewModel> allScreens = new List <IScreenViewModel>(); allScreens.Add(new SchoolInfoViewModel(connectedPerson)); allScreens.Add(new ContactsInfoViewModel(connectedPerson)); allScreens.Add(new StudentGradesViewModel(connectedPerson, messageBoxService)); allScreens.Add(new WeeklyScheduleViewModel(connectedPerson)); allScreens.Add(new CalenderViewModel(connectedPerson)); allScreens.Add(new MessagesDisplayViewModel(connectedPerson)); allScreens.Add(new CreateMessageViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new LessonSummaryViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new GradesReportViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new EventManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new ClassManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new RoomManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new CourseManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new LessonManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new UserCreationViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new UserUpdateViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); allScreens.Add(new SchoolManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService)); // Use only the screens that are relevent to the current user foreach (IScreenViewModel screen in allScreens) { if (screen.HasRequiredPermissions) { screen.Initialize(connectedPerson); ScreensViewModels.Add(screen); } } // Set starting page CurrentScreenViewModel = ScreensViewModels[0]; }