【问题标题】:Xamarin Forms Labs - GeolocatorXamarin Forms Labs - 地理定位器
【发布时间】:2014-09-20 22:59:03
【问题描述】:

如何使用 Xamarin Forms Labs 中的“GeoLocator”功能。当我在课堂上添加“GeoLocator”方法时,我不断收到 this.SetProperty 不存在的错误。有人知道如何使用“地理定位器”吗?

【问题讨论】:

    标签: xamarin.forms


    【解决方案1】:

    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"),
    

    【讨论】:

      【解决方案2】:

      除了 Rui 的回答,我建议使用 Plugins for Xamarin 来处理这种类型的行为。具体来说,Geolocator Plugin for Xamarin and Windows

      这两个地理定位代码库都源自 Xamarin.Mobile,但据我所知,该插件更新了一些,并且还支持 Windows 10 (UWP) 开发。

      【讨论】:

        【解决方案3】:

        如果您发布一些您正在使用的代码,帮助您会更容易。但与此同时,SetProperty 不存在,因为您没有从 Xamarin.Forms.Labs.Data.ObservableObject 类继承。它包含SetProperty 方法,该方法仅仅是INotifyPropertyChanged 的一个实现(如果值不同则更改属性并引发PropertyChanged 事件)。

        因此,您可以从 XFormsLab 的 ObservableObject 继承(或者它是从 ObservableObjectXamarin.Forms.Labs.Mvvm.ViewModel 继承的基本视图模型类),然后您将可以访问 SetProperty。或者你根本不能使用SetProperty,而是使用你自己的INotifyPropertyChanged实现

        【讨论】:

          【解决方案4】:

          我们从这个库中获取了代码并对其进行了清理。您可以在此处克隆 repo:

          https://github.com/MelbourneDeveloper/Adapt.Presentation.git

          每个平台都有完整的示例。如果您运行该示例,您将看到一个 GeoLocator 选项卡,它应该可以在所有平台上运行。 Android 和 UWP 已经过全面测试。

          NuGet 包 Adapt.Presentation 在某种程度上有效,但我很难让它在所有平台上正常工作。

          【讨论】:

            猜你喜欢
            • 2015-02-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-09-13
            • 2017-07-07
            • 2023-03-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多