public void LoadStudent(StudentViewModel student)
        {
            _student = student;

            nameHeader.Text             = student.Name;
            noStudentOverlay.Visibility = System.Windows.Visibility.Hidden;
            var currentUser = UserViewModel.CurrentUser;

            chkMyClasses.IsChecked    = currentUser.HasStudents;
            chkMyClasses.IsEnabled    = currentUser.HasStudents;
            gridStudentInfo.IsEnabled = currentUser.CanEditStudentInfo;

            _sdScores = new ObservableCollection <SDScoreViewModel>();
            _grades   = new ObservableCollection <GradeViewModel>();
            RefreshMarks();

            entName.Text             = _student.Name;
            dtpDob.SelectedDate      = _student.DOB;
            entAddress.Text          = _student.AddressLine1 + "," + student.AddressLine2;
            dtpEnrolled.SelectedDate = _student.DateEnrolled;
            if (_student.DateWithdrawn.HasValue)
            {
                dtpWithdrawn.SelectedDate = _student.DateWithdrawn.Value;
            }
            chkWithdrawn.IsChecked = _student.DateWithdrawn.HasValue;

            Maintenance.GradeLevelShorts.ForEach(o => cmbGradeLevel.Items.Add(o));
            cmbGradeLevel.Text = _student.GradeLevel;

            dgvGrades.ItemsSource          = Grades;
            dgvSelfDevelopment.ItemsSource = SDScores;

            grdStudentReport.ItemsSource = _student.StudentReports();

            genReport.Visibility = ViewUtils.IsVisible(UserViewModel.CurrentUser.CanExportReportCards);


            /*
             * cmbMarkingPeriod.ItemsSource =
             *  MarkingPeriods.Singleton.OrderByDescending(q => q.EndDate).Where(q => student.AttendedDuring(q));
             *
             * var periods = new HashSet<string>();
             * cmbMarkingPeriod.ItemsSource = student.Grades.Select(g => MarkingPeriodKey.Parse(g.Quarter))
             *  .Where(period =>
             *  {
             *      var hadItem = periods.Contains(period.ToString());
             *      if (!hadItem) periods.Add(period.ToString());
             *      return !hadItem;
             *  })
             *  .OrderByDescending(period => period.ToString())
             *  .ThenBy(period => period.Quarter);
             * if (cmbMarkingPeriod.Items.Count > 0)
             * {
             * cmbMarkingPeriod.SelectedIndex = 0;
             * genReport.IsEnabled = true;
             * }
             * else
             * {
             * genReport.IsEnabled = false;
             * }
             */
        }