У меня есть следующий XAML-код, который используется на применении хаб для окон 8.1:Получить элементы управления внутри управления DataTemplate
<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>
Проблема заключается в том, что я не могу получить доступ к MapLayer
и к Grid
управления в C# стр. (Проблема возникает только в том случае, если XAML находится внутри элемента управления DataTepmlate
). Как я могу получить этот доступ?
Добавить имя для сетки и использовать метод Control.Findname, чтобы получить ваш ребенок контролирует – Sajeetharan
@Sajeetharan Спасибо за ваш комментарий, но вы можете мольбу опубликовать пример того, как код должен выглядеть? (Когда я добавил свойство name, я получил сообщение об ошибке: «Имя свойства задано более одного раза» « –
Проверьте эту ссылку http://stackoverflow.com/questions/5181063/how-to-access-a-specific-item -in-a-listbox-with-datatemplate – Sajeetharan