我正在通过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)));
我需要一些有关如何进行的指南,或者一些可以用来寻求帮助的文档
答案 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提到的操作,或者也可以存储信息,然后从存储中访问它。三种简单的方法可以做到这一点-
App Settings-没有什么比这容易
Publisher-subscriber pattern-更专业的方法 具有属性的静态类-可以根据您的用例工作。如u / kneticz所述实现,但是要注意,如果应用被杀死,它将被破坏,因为该类的值没有存储
使用静态类-如下所示: 我会避免不惜一切代价将数据传递给视图,因为它很快变得难以管理,如果您现在需要整理一下,可以存储一个类,每个页面都可以将其用作静态类。因此,创建一个新的文件坐标:
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而不是字符串。