//---These methods happen in reaction to the FavoritesChanged Event.
        private void AddFavoritePlace(IFavorite place)
        {
            GroupedFavoritePlaces.AddSorted(place);
            MappableFavoritePlaces.Add(place as IMapPoi);

            RaisePropertyChanged(nameof(IsFavoritesEmpty));
        }
        private void RemoveFavoritePlace(IFavorite deletedFave)
        {
            GroupedFavoritePlaces.Remove(deletedFave);
            MappableFavoritePlaces.Remove(deletedFave as IMapPoi);

            RaisePropertyChanged(nameof(IsFavoritesEmpty));
        }
        public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state)
        {
            _favoritesService.FavoritesChanged += FavoritesChanged;

            //todo: change this from nuking/rebuilding every time to add/remove what's changed
            GroupedFavoritePlaces.Clear();
            MappableFavoritePlaces.Clear();
            GroupedFavoriteRoutes.Clear();
            MappableFavoriteRoutes.Clear();

            var favorites = await _favoritesService.GetFavoritesAsync();

            foreach (IPlace place in favorites.OfType <IPlace>())
            {
                AddFavoritePlace((IFavorite)place);
            }

            foreach (FavoriteRoute route in favorites.OfType <FavoriteRoute>())
            {
                AddFavoriteRoute(route);
            }


            await Task.CompletedTask;
        }