2016-01-10 34 views
1

我刚刚发现了开发Windows应用程序(UWP)的新方法,而且我面临着一个我从未有过的问题。无法通过名称获取MapControl元素

我有了这个地图控件:

<HubSection x:Uid="xxx" Header="Map"> 
    <DataTemplate> 
    <Maps:MapControl x:Name="myMapControl" MapServiceToken="XXXXXXXX" Width="700" Height="655" /> 
    </DataTemplate> 
</HubSection> 

,并在后面的我的代码,

myMapControl.MapElements.Add(mapIcon1); 

但我得到的错误说“myMapControl”不是在当前范围内定义。如果我给另一个元素(例如网格)提供“x:Name”,它就会起作用。

如何在我的C#代码中获取我的MapControl? 或者,我怎样才能将我的mapIcon绑定到地图上?

谢谢您的回答

回答

2

在的DataTemplates的情况下,它们的内容是不能直接在它被加载的页面视觉树untils,这样的一种方式,如果你只有很少的控制来获取地图控件在页面如下:

<Hub> 
     <HubSection> 
      <DataTemplate> 
       <Maps:MapControl x:Name="MyMapControl" Loaded="MyMapControl_Loaded"/> 
      </DataTemplate> 
     </HubSection> 
    </Hub> 

然后在Loaded事件只是以下几点:

private MapControl myMapControl; 
    private void MyMapControl_Loaded(object sender, RoutedEventArgs e) 
    { 
     myMapControl = (sender as MapControl); 
    } 
+0

的作品就像一个魅力!非常感谢 – carndacier

相关问题