我试图将图钉保存到地图上的应用程序设置,以便在应用程序关闭后加载,但我不确定如何从存储中检索变量。有人知道我将如何实现加载图钉回到地图后,他们保存?
这就是我到目前为止所尝试的,我将图钉保存到隔离存储后,它们被添加到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"];
}