Передать широту долготы как переменную кнопкой на страницу содержимого - PullRequest
0 голосов
/ 02 июня 2019

Я использую веб-сервис через Azure, мне нужно передать широту и долготу из БД на страницу контента

Я использую Visual Studio 2017 с формами xamarin

<Button Text="Ver localización" VerticalOptions="Start" Clicked="Onbtn_Clicked"
    HorizontalOptions="FillAndExpand" /> 


private async void Onbtn_Clicked(object sender, EventArgs e)
    {         
       Application.Current.MainPage = new NavigationPage(new MapAppPage2()) ;
    }

В MapAppPage2:

map.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(latitudeVar, longitudeVar), Distance.FromMiles(10)));

Мне нужно какое-то руководство о том, как мне поступить, или какой-то документ, который я мог бы использовать для помощи

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Вы можете сделать то, что упомянул @Argon, или вы также можете сохранить информацию и затем получить к ней доступ из хранилища. Три простых способа сделать это -

  1. Настройки приложения - Нет ничего проще

  2. Шаблон издатель-подписчик - Более профессиональный способ сделать это Статический класс со свойствами - может работать в зависимости от вашего варианта использования. Реализуйте так же, как упомянуто u / kneticz, но имейте в виду, что оно сломается, если приложение будет убито, так как значения класса не сохраняются

  3. Использование статического класса - показано ниже: Я бы избегал передачи данных в представления любой ценой, это становится неуправляемым быстро, если вам нужно навести порядок, вы можете сохранить класс, который каждая из ваших страниц может использовать в качестве статического класса. Поэтому создайте новый файл Координаты:

public static class Coordinates()
{
    public static string Longitude {get; set;}
    public static string Latitude {get; set;}
}

На первой странице вы устанавливаете значения статического свойства, как показано:

Coordinates.Longitude = "86.124124";
Coordinates.Latitude = "25.352552";

затем на другой странице используйте get получить значения статического свойства, как показано ниже: var latitude = Coordinates.Latitude; var longitude = Coordinates.Longitude; На заметку, вы, вероятно, захотите использовать double / float вместо строки.

0 голосов
/ 02 июня 2019

Вы можете передать широту / долготу в качестве параметров MapAppPage2.

<Button Text="Ver localización" VerticalOptions="Start" Clicked="Onbtn_Clicked"
    HorizontalOptions="FillAndExpand" /> 


private async void Onbtn_Clicked(object sender, EventArgs e)
    {         
       Application.Current.MainPage = new NavigationPage(new MapAppPage2(lat,long)) ;
    }

Затем обновите ваш MapAppPage2 Contractor, как показано ниже.

public void MapAppPage2(string _lat, string _long){}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...