private void CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove) { foreach (object item in e.OldItems) { if (item is Person) { DeletedPersons.Add(item as Person); if ((item as Person).Role == "教师") { Courses.CollectionChanged -= CollectionChanged; foreach (var course in Courses.Where(p => p.TeacherId == (item as Person).Id).ToArray()) { Courses.Remove(course); } Courses.CollectionChanged += CollectionChanged; } } else if (item is UICourse) { DeletedCourses.Add(item as UICourse); } } } }
/// <summary> /// 更新学生或教师信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void UpdatePersonsButtonClick(object sender, RoutedEventArgs e) { if (ModifiedPersons.Count + DeletedPersons.Count == 0) { TaskDialog.ShowError("没有修改或删除的人员"); return; } JObject json = await NetHelper.Send(new { Command = Admin_Update_Persons, Modified = ModifiedPersons, Deleted = DeletedPersons }) as JObject; if (json[OK].Value <bool>()) { TaskDialog.Show(json[Message].Value <string>()); ModifiedPersons.Clear(); DeletedPersons.Clear(); } else { TaskDialog.ShowError(json[Message].Value <string>()); } }