private void comboBoxBookmarks_SelectedIndexChanged(object sender, EventArgs e) { if (currentBookmark == null || currentBookmark.PlanetaryMarks == null || currentBookmark.PlanetaryMarks.Planets == null) { return; } foreach (PlanetMarks.Planet pl in currentBookmark.PlanetaryMarks.Planets) { if (pl.Locations != null && pl.Locations.Any()) { foreach (PlanetMarks.Location loc in pl.Locations.OrderBy(l => l.Name)) { if ($"{loc.Name} ({pl.Name})" == comboBoxBookmarks.Text) { numberBoxTargetLatitude.Value = loc.Latitude; numberBoxTargetLongitude.Value = loc.Longitude; if (externallyForcedBookmark && comboBoxBookmarks.Text != externalLocationName) { comboBoxBookmarks.Items.Remove(externalLocationName); externallyForcedBookmark = false; externalLocationName = ""; externalLocation = null; } DisplayCompass(); return; } } } } }
public void SetSurfaceBookmark(BookmarkClass bk, string planetName, string locName) { externallyForcedBookmark = true; externalLocation = bk.PlanetaryMarks.Planets.Where(pl => pl.Name == planetName).FirstOrDefault()?.Locations.Where(l => l.Name == locName).FirstOrDefault(); if (externalLocation != null) { externalLocationName = $"{locName} ({planetName})"; numberBoxTargetLatitude.Value = externalLocation.Latitude; numberBoxTargetLongitude.Value = externalLocation.Longitude; } Display(); }