private void RemoveFromSubjects(SubjectViewModel subjectVM) { UnhookEvents(subjectVM); _subjects.Remove(subjectVM); }
private void AddToSubjects(SubjectViewModel vm) { AttachEvents(vm); _subjects.Add(vm); }
private void InsertIntoSubjects(int idx, SubjectViewModel subjectVM) { AttachEvents(subjectVM); _subjects.Insert(idx, subjectVM); }
private void UnhookEvents(SubjectViewModel svm) { svm.RequestDeletionEvent -= DeleteSubject; svm.RequestEditCommand -= EditSubject; }
private void AttachEvents(SubjectViewModel subject) { subject.RequestDeletionEvent += new EventHandler(DeleteSubject); subject.RequestEditCommand += new EventHandler(EditSubject); }
void EditCompleted(object sender, EventArgs e) { var editingVM = sender as EditingSubjectViewModel; if (editingVM != null) { int idx = _subjects.IndexOf(editingVM); RemoveFromSubjects(editingVM); var subjectVM = new SubjectViewModel(editingVM.Subject); if (idx >= 0) { InsertIntoSubjects(idx, subjectVM); } else { AddToSubjects(subjectVM); } DecreaseDirtyLevel(); } }