private async void OnAddPersonClickAsync(object sender, RoutedEventArgs args) { var dialog = new PersonDialog { Owner = this }; dialog.ShowDialog(); if (dialog.DialogResult == false) { return; } string city = dialog.AddressCity; string country = dialog.AddressCountry; string streetName = dialog.AddressStreetName; byte streetNumber = dialog.AddressStreetNumber; string tooltip = $"Latitude:\t\t{latestClickLocation.Latitude}\r\nLongitude:\t{latestClickLocation.Longitude}\r\n" + $"Name:\t\t{dialog.PersonFirstName + " " + dialog.PersonLastName}\r\nStreet address:\t{streetName + " " + streetNumber}"; Pushpin pin = AddPin(latestClickLocation, tooltip, Colors.Blue); pin.MouseLeftButtonDown += OnPersonPinClick; personPins.Add(pin); Person person = new Person() { FirstName = dialog.PersonFirstName, LastName = dialog.PersonLastName, City = city, Country = country, StreetName = streetName, StreetNumber = streetNumber, Coordinates = latestClickLocation }; await _db.AddPersonAsync(person); pin.Tag = person; activePinPerson = person; foreach (var personPin in personPins) { if (personPin == pin) { personPin.Opacity = 1; } else { personPin.Opacity = 0.5; } } foreach (var cachePin in cachePins) { cachePin.Background = colors["Red"]; } }