private void ChooseColumnCB_SelectedIndexChanged(object sender, EventArgs e) { string selectedItem = ChooseColumnCB.Text; bool IsBirthday = selectedItem == Res.BirthdayLbl; List <Pupil> pList = classesDict[ChooseClassCB.Text]; for (int i = 0; i < pList.Count; i++) { TextBox tb = (TextBox)Table.GetControlFromPosition(1, i + 2); tb.TextChanged -= ChangeContentCallback; PupilAddInfo pai = pList[i].AddInfo; if (selectedItem == Res.BirthdayLbl) { tb.Text = pai.Birthday; } else if (selectedItem == Res.AddressLbl) { tb.Text = pai.Address; } else { tb.Text = pai.Sex; } tb.TextChanged += ChangeContentCallback; } }
/// <summary> /// Fill dictionary with lists of Classes /// </summary> /// <param name="classData">String that represent table from Word document</param> private void fillDictionary(string classData) { string[] classInfo = classData.Split(new string[] { "\r\a\r\a" }, StringSplitOptions.RemoveEmptyEntries); string className = getClassName(classInfo[0]); if (checkNeedful(className)) { classesDict.Add(className, new List <Pupil>()); for (int i = 1; i < classInfo.Length; i++) { string[] pupilFullInfo = classInfo[i].Split(new string[] { "\r\a" }, StringSplitOptions.None); if (pupilFullInfo.Length > 2) { Pupil pupil = new Pupil(pupilFullInfo[1]); pupil.Class = className; string line = pupilFullInfo[1].Substring(pupilFullInfo[1].Length - 2); PupilAddInfo pm = new PupilAddInfo() { Birthday = pupilFullInfo[2], Address = pupilFullInfo[3], Sex = (line == "ич") ? "M" : "Ж" }; pupil.AddInfo = pm; classesDict[className].Add(pupil); } } classesDict[className] = classesDict[className].OrderBy(item => item.FullName).ToList(); } }
/// <summary> /// Process the changing content /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ChangeContentCallback(object sender, EventArgs e) { TextBox tb = (TextBox)sender; var position = Table.GetCellPosition(tb); int rowPos = position.Row - 2; if (position.Column == 0) { classesDict[ChooseClassCB.Text][rowPos].FullName = tb.Text; } else { string columnName = ChooseColumnCB.Text; PupilAddInfo pai = classesDict[ChooseClassCB.Text][rowPos].AddInfo; switch (AppConstants.columnsPupilList.IndexOf(columnName)) { case 0: pai.Birthday = tb.Text; break; case 1: pai.Address = tb.Text; break; case 2: pai.Sex = tb.Text; break; } classesDict[ChooseClassCB.Text][rowPos].AddInfo = pai; } }