public ConferenceModel(Conference conference, bool downloadEntityDates = true) { Conference = conference; if (downloadEntityDates) { List <Scientist> scientists = ConferenceService.GetScientists(Conference); foreach (Scientist s in scientists) { Scientists.Add(new ScientistModel(s)); } Scientists.CollectionChanged += (o, e) => { if (e.Action.ToString().Equals("Add")) { ScientistModel sm = null; foreach (ScientistModel scm in e.NewItems) { sm = scm; } ConferenceService.AddScientist(Conference, sm.Scientist); } else if (e.Action.ToString().Equals("Remove")) { ScientistModel sm = null; foreach (ScientistModel scm in e.OldItems) { sm = scm; } ConferenceService.RemoveScientist(Conference, sm.Scientist); } }; List <Report> reports = ConferenceService.GetReportsOnConference(Conference); foreach (Report r in reports) { Reports.Add(new ReportModel(r)); } Reports.CollectionChanged += (o, e) => { if (e.Action.ToString().Equals("Add")) { ReportModel rm = null; foreach (ReportModel rtm in e.NewItems) { rm = rtm; } ConferenceService.AddReport(Conference, rm.Report); } else if (e.Action.ToString().Equals("Remove")) { ReportModel rm = null; foreach (ReportModel rtm in e.OldItems) { rm = rtm; } ConferenceService.RemoveReport(Conference, rm.Report); } }; } }