我刚刚发现开发Windows应用程序(UWP)的新方法,我正面临一个我以前从未遇到过的问题。
我有这个地图控件:
<HubSection x:Uid="xxx" Header="Map">
<DataTemplate>
<Maps:MapControl x:Name="myMapControl" MapServiceToken="XXXXXXXX" Width="700" Height="655" />
</DataTemplate>
</HubSection>
在我的代码后面,
myMapControl.MapElements.Add(mapIcon1);
但是我得到的错误是&#34; myMapControl&#34;在当前范围中未定义。如果我给出一个&#34; x:名字&#34;它可以工作到另一个元素(例如网格)。
如何在我的C#代码中获取MapControl? 或者,我如何将mapIcon绑定到地图?
感谢您的回答
答案 0 :(得分:2)
对于DataTemplates,它们的内容直到它被加载才直接在Page Visual Tree中,所以一种方法,如果你只有很少的控件来获取页面中的MapControl,那么:
<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);
}