2

傢伙,我真的需要你的幫助,我有地圖分配地理座標圖釘

xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps" 
xmlns:maptk="clr-namespace:Microsoft.Phone.Maps.Toolkitassembly=Microsoft.Phone.Controls.Toolkit" 

     <maps:Map Grid.Row="0" Tap="Onm_MapControlTap" Name="m_MapControl 
      <maptk:MapExtensions.Children> 
       <maptk:Pushpin x:Name="m_PushPin" Tap="OnPushPinTap"> 
        <maptk:Pushpin.Content> 
        <StackPanel>       
          <TextBlock Text=""/> 
          <Image Source=""/> 
        </StackPanel> 
       </maptk:Pushpin.Content> 
      </maptk:Pushpin> 
      </maptk:MapExtensions.Children> 
     </maps:Map> 

當我從geowatcher或座標當我在地圖上點擊,我要添加這些座標我圖釘。

m_PushPin.GeoCoordinate = m_watcher.Position.Location;

類型的異常「System.NullReferenceException」發生了m_PushPin,我不明白爲什麼這個圖釘爲空。你能告訴我我做錯了什麼,我該如何解決這個問題?

回答

3

這是XAML Parser的已知問題。由於您的PushPin嵌套在附加的依賴項屬性(MapExtensions.Children)中,因此它不會與UserControl處於同一邏輯樹的一部分,因此在該範圍內不會被FindName拾取。

相反,您應該手動遍歷可視樹並獲得所需的控件。幸運的是,地圖控件僅在這種情況下附帶了輔助方法。

var pushpin = MapExtensions.GetChildren(myMap).OfType<Pushpin>().First(p => p.Name == "m_PushPin"); 
+0

這是非常有益的感謝賈斯汀 – 2013-02-15 07:16:38

1

正如你可以使用綁定綁定一些GeoCoordinate到圖釘的替代品。