2014-03-24 5 views
1

지도에서 압정을 앱 설정으로 저장하려고합니다. 앱을 닫은 후에로드되도록 설정했지만 저장소에서 변수를 검색하는 방법을 모르겠습니다. 누구든지 그들이 구원을받은 후지도에 압핀을 다시로드하는 방법을 알고 있습니까? 앱 설정에서 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 

답변

3

"pushPin"키를 사용하여 appSettings에 위치를 추가 했으므로 동일한 키를 사용하여 해당 앱 설정을 검색하려고합니다. 또한 'var'가 아닌 GeoCoordinate로 캐스팅해야합니다.

private GeoCoordinate MyGeoPosition;  

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

'MyGeoPosition 현재 context'에 존재하지 않는이 클래스에서 어디서나 사용할 수 있도록 문제는 그것이 글로벌 MyGeoPosition가 OnNavigatedTo method.How에서만 볼 수 있을까요입니까? –

+0

MyGeoPosition을 특정 함수 범위 외부에서 정의하면 해당 클래스 내 어디에서나 액세스 할 수 있습니다. – robwirving

+0

@BrianJ 공용 정적 GeoCoordinate MyGeoPosition = new GeoCoordinate (0, 0); App.xaml.cs 파일에서 정의하십시오. – Jaihind