如何从应用程序设置检索类型GeoCoordinate变量?Windows Phone



我试图将图钉保存到地图上的应用程序设置,以便在应用程序关闭后加载,但我不确定如何从存储中检索变量。有人知道我将如何实现加载图钉回到地图后,他们保存?

这就是我到目前为止所尝试的,我将图钉保存到隔离存储后,它们被添加到OnNavigatedTo

的地图中
protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (NavigationContext.QueryString.ContainsKey("GeoLat") && NavigationContext.QueryString.ContainsKey("GeoLong") && NavigationContext.QueryString.ContainsKey("pName"))
            { 
                    var latitude = Convert.ToDouble(NavigationContext.QueryString["GeoLat"]);
                    var longtitude = Convert.ToDouble(NavigationContext.QueryString["GeoLong"]);
                    var MyGeoPosition = new GeoCoordinate(latitude, longtitude);
                    var pushPinName = NavigationContext.QueryString["pName"];
                    DrawPushPin(MyGeoPosition, pushPinName);
                    appSettings.Add("pushPin", MyGeoPosition);      
            }
            base.OnNavigatedTo(e);
        }

然后我尝试在像这样加载页面时检索图钉,但是抛出以下错误。我知道MyGeoPosition只在OnNavigatedTo中看到,所以我不能引用它,是否有检索它的替代方法?:

private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
        {
            MyMap.MapElements = (var)appSettings[MyGeoPosition];
        }
Error   1   The contextual keyword 'var' may only appear within a local variable declaratio 
Error   2   The name 'MyGeoPosition' does not exist in the current context  

由于您使用键"pushPin"将位置添加到appSettings,因此您希望使用相同的键来检索该应用程序设置。你还需要将它强制转换为GeoCoordinate,而不是'var'。

private GeoCoordinate MyGeoPosition;    
private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
{
    MyGeoPosition = (GeoCoordinate)appSettings["pushPin"];
}

最新更新