private void VaccinesAdministered_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.OldItems != null) { foreach (VaccineAdministeredViewModel v in e.OldItems) { v.PropertyChanged -= NewVaccineAdminVm_PropertyChanged; v.PropertyChanged -= VaccineAdminVm_PropertyChanged; var item = _participant.VaccineModelsAdministered.FirstOrDefault(va => va == v.VaccineAdministeredModel); if (item != null) { _participant.VaccineModelsAdministered.Remove(item); if (item.VaccineGiven != null) { AllVaccinesAvailable.First(a => a.Vaccine == item.VaccineGiven).IsGivenToThisPatient = false; } IsVaccineAdminChanged = true; } } } if (e.NewItems != null) { foreach (VaccineAdministeredViewModel v in e.NewItems) { v.PropertyChanged += VaccineAdminVm_PropertyChanged; } } }
void CreateNewVaccine(object param) { Vaccine vax = new Vaccine { Name = NewVaccineName }; _repository.Add(vax); AllVaccinesAvailable.Add(new VaccineViewModel(vax)); }