示例#1
0
 private void RemoveFromSubjects(SubjectViewModel subjectVM)
 {
     UnhookEvents(subjectVM);
     _subjects.Remove(subjectVM);
 }
示例#2
0
 private void AddToSubjects(SubjectViewModel vm)
 {
     AttachEvents(vm);
     _subjects.Add(vm);
 }
示例#3
0
 private void InsertIntoSubjects(int idx, SubjectViewModel subjectVM)
 {
     AttachEvents(subjectVM);
     _subjects.Insert(idx, subjectVM);
 }
示例#4
0
 private void UnhookEvents(SubjectViewModel svm)
 {
     svm.RequestDeletionEvent -= DeleteSubject;
     svm.RequestEditCommand -= EditSubject;
 }
示例#5
0
 private void AttachEvents(SubjectViewModel subject)
 {
     subject.RequestDeletionEvent += new EventHandler(DeleteSubject);
     subject.RequestEditCommand += new EventHandler(EditSubject);
 }
示例#6
0
        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();
            }
        }