[英]can't get MapControl element by name
我只是发现了开发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);
但是我得到一个错误,说“ myMapControl”没有在当前范围内定义。 如果我给另一个元素(例如网格)赋予“ x:Name”,则它可以工作。
如何在C#代码中获取MapControl? 或者,如何将mapIcon绑定到地图?
谢谢你的回答
对于DataTemplates,直到加载它之前,它们的内容才直接在Page Visual Tree中显示,因此,一种方法是在以下情况下(如果只有很少的控件可以在Page中获取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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.