如何使用 Xamarin Forms Labs 中的“GeoLocator”功能。当我在课堂上添加“GeoLocator”方法时,我不断收到 this.SetProperty 不存在的错误。有人知道如何使用“地理定位器”吗?
4 回答
SetProperty 仅在最新的预发布 nuget 包中可用,它是我们的 Base ViewModel 中的一种方法...
你必须展示你的代码才能看到你想要做什么。
但它应该像这样简单:
var geolocator = DependencyService.Get<IGeolocator>();
var result = geolocator.GetPositionAsync(10000);
var strLatitude = result.Latitude.ToString("N4");
var strLongitude = result.Longitude.ToString("N4"),
除了 Rui 的回答,我建议使用Plugins for Xamarin来处理这种类型的行为。具体来说,Xamarin 和 Windows 的 Geolocator 插件。
这两个地理定位代码库都源自 Xamarin.Mobile,但据我所知,该插件更新了一些,并且还支持 Windows 10 (UWP) 开发。
如果您发布一些您正在使用的代码,它会更容易帮助您。但与此同时,SetProperty
不存在,因为您没有从Xamarin.Forms.Labs.Data.ObservableObject
类继承。它包含的SetProperty
方法仅仅是一个实现INotifyPropertyChanged
(如果值不同,则更改属性并引发 PropertyChanged 事件)。
因此,您可以从 XFormsLab 继承ObservableObject
(或者它是从ObservableObject
,继承的基本视图模型类Xamarin.Forms.Labs.Mvvm.ViewModel
),然后您将可以访问SetProperty
. 或者你根本不能使用SetProperty
并使用你自己的实现INotifyPropertyChanged
我们从这个库中获取代码并对其进行清理。您可以在此处克隆存储库:
https://github.com/MelbourneDeveloper/Adapt.Presentation.git
它包含每个平台的示例。如果您运行该示例,您将看到一个 GeoLocator 选项卡,它应该可以在所有平台上运行。Android 和 UWP 已经过彻底测试。
NuGet 包 Adapt.Presentation 在某种程度上有效,但我很难让它在所有平台上正常工作。