繁体   English   中英

无法通过名称获取MapControl元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM