private void AlleCampussen_Checked(object sender, RoutedEventArgs e) { // Pause listening for changes VoorkeurCampussen.CollectionChanged -= VoorkeurCampussen_CollectionChanged; VoorkeurCampussen.Clear(); Campussen.ToList().ForEach(c => VoorkeurCampussen.Add(c)); Settings.SetVoorkeurCampussen(VoorkeurCampussen); // Resume listening for changes VoorkeurCampussen.CollectionChanged += VoorkeurCampussen_CollectionChanged; }
private async void InitializeData() { List <Campus> campussen = await Api.GetAsync <List <Campus> >(); List <Opleiding> opleidingen = await Api.GetAsync <List <Opleiding> >(); // Add all campussen/opleidingen to collection campussen.ForEach(c => Campussen.Add(c)); opleidingen.ForEach(o => Opleidingen.Add(o)); // Get preferences from settings Settings.GetVoorkeurCampussen().ForEach(c => VoorkeurCampussen.Add(c)); Settings.GetVoorkeurOpleidingen().ForEach(o => VoorkeurOpleidingen.Add(o)); // Set initial state for 'check all' checkboxes if (VoorkeurCampussen.Count > 0 && VoorkeurCampussen.Count < Campussen.Count) { AlleCampussen.IsChecked = null; } else { AlleCampussen.IsChecked = VoorkeurCampussen.Count == Campussen.Count; } if (VoorkeurOpleidingen.Count > 0 && VoorkeurOpleidingen.Count < Opleidingen.Count) { AlleOpleidingen.IsChecked = null; } else { AlleOpleidingen.IsChecked = VoorkeurOpleidingen.Count == Opleidingen.Count; } // Listen to changes in preferences VoorkeurCampussen.CollectionChanged += VoorkeurCampussen_CollectionChanged; VoorkeurOpleidingen.CollectionChanged += VoorkeurOpleidingen_CollectionChanged; // Listen to changes in top checkboxes AlleCampussen.Checked += AlleCampussen_Checked; AlleCampussen.Unchecked += AlleCampussen_Unchecked; AlleOpleidingen.Checked += AlleOpleidingen_Checked; AlleOpleidingen.Unchecked += AlleOpleidingen_Unchecked; // Create states for each campus/opleiding and bind them campussen.ForEach(c => VoorkeurCampussenState.Add(new ToggleState <Campus>(VoorkeurCampussen, c))); opleidingen.ForEach(o => VoorkeurOpleidingenState.Add(new ToggleState <Opleiding>(VoorkeurOpleidingen, o))); }