public MainWindowViewModel( StudentContext studentContext, ParameterContext adminContext, ObservableCollection<CollegeLife> collegeLife, ObservableCollection<DegreeProgram> degreePrograms, ObservableCollection<Term> terms) { if(studentContext == null) { throw new ArgumentNullException("studentContext"); } if(adminContext == null) { throw new ArgumentNullException("adminContext"); } if(collegeLife == null) { throw new ArgumentNullException("collegeLife"); } if(degreePrograms == null) { throw new ArgumentNullException("degreePrograms"); } if(terms == null) { throw new ArgumentNullException("terms"); } Students = studentContext; Parameters = adminContext; CollegeLife = collegeLife; DegreePrograms = degreePrograms; Terms = terms; ObservableCollection<StudentViewModel> students = new ObservableCollection<StudentViewModel>(); foreach(Student student in studentContext.Items) { students.Add(new StudentViewModel(student, studentContext)); } ObservableCollection<ParameterViewModel> parameters = new ObservableCollection<ParameterViewModel>(); foreach(Parameter parameter in adminContext.Items) { parameters.Add(new ParameterViewModel(parameter, adminContext)); } InquiryWorkspace = new InquiryWorkspaceViewModel(studentContext, collegeLife, degreePrograms, terms); StudentWorkspace = new StudentWorkspaceViewModel(students, studentContext); AdminWorkspace = new AdminWorkspaceViewModel(parameters, adminContext, terms); ApprovalsWorkspace = new StudentApprovalsViewModel(degreePrograms, students.ToList<StudentViewModel>(), terms); SaveCommand = new DelegateCommand(o => Save()); }