public void UpdateGraph() { if (generator != null) { generator.SetNeighbourhood(picker.Items[picker.SelectedIndex]); bg = generator.GenerateGraphModel(); bikecontainers.ItemsSource = bg.model; thefts.ItemsSource = bg.model; } }
//Maakt het model dat de source voor de grafiek wordt. public Q3Model GenerateGraphModel() { Q3Model q3model = new Q3Model(); List <StackedData> sData = new List <StackedData>(); //Kies de juiste deelgemeente die is geselecteerd is uit de lijst van deelgemeentes. DeelGemeente deelgemeente = gemeentes.deelGemeentes.Single(item => item.Name == selectedNeighbourhood); for (int i = 1; i < 13; i++) { //Custom data structuur om de correcte data voor de grafiek te genereren StackedData data = new StackedData(); //Zoek naar containers die in betreffende maand en gelijk is aan de naam van een deelgemeente. var monthC = containers.Where(item => item.Month == i).Where(item => item.Neighbourhood == deelgemeente.Name); //Selecteer alle diefstallen in de betreffende maand. var monthT = thefts.Where(item => item.Month == i); //Door alle diefstallen loopen en daarna de diefstallen toevoegen die overeenkomen met de geselecteerde deelgemeente/wijk foreach (var theft in monthT) { if (deelgemeente.GetWijken().Any(item => item.StartsWith(theft.Neighbourhood, StringComparison.CurrentCultureIgnoreCase))) { data.AddBikeThefts(theft); } } //Door alle containers loopen en deze toevoegen aan de data. foreach (var container in monthC) { data.AddContainer(container); } //Maan genereren data.Month = new DateTime(2010, i, 1).ToString("MMM"); sData.Add(data); } //De uiteindelijke data toevoegen aan het model voor de grafiek foreach (StackedData d in sData) { q3model.AddData(d); } //Model teruggeven voor gebruik in grafiek return(q3model); }
public async void GenerateGraph() { await generator.LoadData(); Device.BeginInvokeOnMainThread(() => { foreach (string neighbourhood in generator.GetNeighbourhoodList()) { picker.Items.Add(neighbourhood); } generator.SetNeighbourhood(picker.Items[0]); bg = generator.GenerateGraphModel(); chart.Series.Add(bikecontainers = new StackingBarSeries() { Label = "Bike containers", ItemsSource = bg.model, XBindingPath = "Month", YBindingPath = "BikeContainerCount", EnableAnimation = true, AnimationDuration = 3.0, EnableTooltip = true, }); chart.Series.Add(thefts = new StackingBarSeries() { Label = "Bike thefts", ItemsSource = bg.model, XBindingPath = "Month", YBindingPath = "BikeTheftCount", EnableAnimation = true, AnimationDuration = 3.0, EnableTooltip = true, }); chart.IsVisible = true; picker.IsVisible = true; this.IsBusy = false; }); }