通过按钮将纬度经度作为变量传递到内容页面

时间:2019-06-01 22:54:59

标签: c# google-maps-api-3 xamarin.forms azure-web-sites

我正在通过azure使用webservice,我需要将db的经度和纬度传递到内容页面

我正在将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 :(得分:0)

您可以将lat / long作为参数传递给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承包商。

public void MapAppPage2(string _lat, string _long){}

答案 1 :(得分:0)

您可以执行@Argon提到的操作,或者也可以存储信息,然后从存储中访问它。三种简单的方法可以做到这一点-

  1. App Settings-没有什么比这容易

  2. Publisher-subscriber pattern-更专业的方法 具有属性的静态类-可以根据您的用例工作。如u / kneticz所述实现,但是要注意,如果应用被杀死,它将被破坏,因为该类的值没有存储

  3. 使用静态类-如下所示: 我会避免不惜一切代价将数据传递给视图,因为它很快变得难以管理,如果您现在需要整理一下,可以存储一个类,每个页面都可以将其用作静态类。因此,创建一个新的文件坐标:

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

在第一页中,设置static属性的值,如下所示:

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

然后在另一页中,使用get静态属性的值,如下所示: var latitude = Coordinates.Latitude; var经度= Coordinates.Longitude; 附带说明一下,您可能希望使用double / float而不是字符串。