【问题标题】:can't get MapControl element by name无法按名称获取 MapControl 元素
【发布时间】:2016-01-10 15:11:24
【问题描述】:

我刚刚发现了开发 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 绑定到地图?

感谢您的回答

【问题讨论】:

    标签: c# uwp


    【解决方案1】:

    在 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);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 2016-03-05
      相关资源
      最近更新 更多