【发布时间】:2014-10-08 13:46:02
【问题描述】:
我有以下 XAML 代码用于 windows 8.1 的集线器应用程序:
<HubSection Width="780" Margin="0,0,80,0">
<HubSection.Background>
<ImageBrush ImageSource="Assets/MediumGray.png" Stretch="UniformToFill" />
</HubSection.Background>
<DataTemplate>
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<m:Map Credentials="YOUR_BING_MAPS_KEY">
<m:Map.Children>
<!-- Data Layer-->
<m:MapLayer Name="DataLayer"/>
<!--Common Infobox-->
<m:MapLayer>
<Grid x:Name="Infobox" Visibility="Collapsed" Margin="0,-115,-15,0">
<Border Width="300" Height="110" Background="Black" Opacity="0.8" BorderBrush="White" BorderThickness="2" CornerRadius="5"/>
</Grid>
</m:MapLayer>
</m:Map.Children>
</m:Map>
</Grid>
</DataTemplate>
</HubSection>
问题是我无法访问 c# 页面中的 MapLayer 和 Grid 控件。
(仅当 XAML 位于 DataTepmlate 控件内时才会出现问题)。
我怎样才能获得此访问权限?
【问题讨论】:
-
为您的 Grid 添加一个名称并使用 Control.Findname 方法获取您的子控件
-
@Sajeetharan 感谢您的评论,但您能否发布一个示例以说明代码的外观? (当我添加 name 属性时出现错误:“属性名称设置不止一次)”
-
我昨天回答了这个问题:stackoverflow.com/questions/26236707/…(只是另一个示例..)
-
<m:MapLayer Name="DataLayer" Loaded="yourloadedevent" />并在处理程序中使用您的代码。请在此处发布您的代码,以便其他人可以查看。
标签: c# xaml datatemplate