async void Handle_ItemTapped(object sender, ItemTappedEventArgs e) { if (e.Item == null || !(e.Item is LessonSettings)) { return; } LessonSettings selectedLesson = (LessonSettings)e.Item; //Deselect Item ((ListView)sender).SelectedItem = null; await Navigation.PushAsync(new LessonSettingsPage(selectedLesson)); }
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; } } }); }
public LessonSettingsPage(LessonSettings lessonSettings) { InitializeComponent(); Title = lessonSettings.LessonName; this.lessonSettings = lessonSettings; updatingProgrammatically = true; ShowLesson.IsChecked = lessonSettings.HidingSettings.ShowLesson; updatingProgrammatically = false; eventTypes = lessonSettings.EventTypes .Select(et => new CheckedEventType { EventType = et }) .ToList(); LessonsEventTypes.ItemsSource = eventTypes; UpdateEventTypesCheck(); }