public ManageLessonsPage(SavedGroup group) { InitializeComponent(); Title += $": {group.Name}"; this.group = group; EventList eventList = EventsDataStore.GetEventsLocal(group.ID); if (eventList == null) { return; } List <LessonSettings> lessonSettings = LessonSettingsDataStore.GetLessonSettings(group.ID); lessons = new ObservableCollection <LessonSettings> ( eventList.Lessons() .Select(lesson => { LessonSettings res = lessonSettings.FirstOrDefault(ls => ls.LessonName == lesson) ?? new LessonSettings { LessonName = lesson }; res.EventTypes = eventList.EventTypes(lesson).ToList(); return(res); }) .OrderBy(lesson => lesson.LessonName) ); LessonsList.ItemsSource = lessons; if (lessons.Count == 0) { NoSourceLayout.IsVisible = true; } MessagingCenter.Subscribe <LessonSettingsPage, LessonSettings>(this, "OneLessonSettingsChanged", (sender, newLessonSettings) => { for (int i = 0; i < lessons.Count; i++) { if (lessons[i].LessonName == newLessonSettings.LessonName) { lessons[i] = newLessonSettings; lessons[i].NotifyChanged(); break; } } }); }