private void FillSubjectComboByGradeID(long gradeID) { SubjectsRepository subjectsRepository = new SubjectsRepository(); List <SubjectModel> subjectModels = new List <SubjectModel>(); DataTable dataTable = new DataTable(); try { dataTable = subjectsRepository.GetAllSubjectsByGradeID(gradeID); subjectModels = TranslateDataTableToSubjectsModel(dataTable); } catch (Exception ex) { MessageBox.Show("Network error...Please try again!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { dataTable.Clear(); dataTable = null; } this.cmbSubjects.SelectedIndexChanged -= new EventHandler(cmbSubjects_SelectedIndexChanged); BindingSource bs = new BindingSource(); bs.DataSource = subjectModels; cmbSubjects.ValueMember = "SubjectID"; cmbSubjects.DisplayMember = "SubjectName"; cmbSubjects.DataSource = bs; cmbSubjects.SelectedIndex = -1; this.cmbSubjects.SelectedIndexChanged += new EventHandler(cmbSubjects_SelectedIndexChanged); }