Comment accéder à un Contrôle dans le modèle de données en C# Metro UI dans le code-behind
J'ai un MediaElement qui réside à l'intérieur de la datatemplate de flipview, je veux accéder à qui MediaElement nommé "vidéo" dans le code-behind de sorte que je peux attribuer des propriétés telles que lecture, pause, etc par le biais de boutons
voici le code de ce que je suis en train de faire :
<FlipView
x:Name="flipView"
AutomationProperties.AutomationId="ItemsFlipView"
AutomationProperties.Name="Item Details"
TabIndex="1"
Grid.RowSpan="2"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}">
<FlipView.ItemContainerStyle>
<Style TargetType="FlipViewItem">
<Setter Property="Margin" Value="0,137,0,0"/>
</Style>
</FlipView.ItemContainerStyle>
<FlipView.ItemTemplate>
<DataTemplate>
<UserControl Loaded="StartLayoutUpdates" Unloaded="StopLayoutUpdates">
<ScrollViewer x:Name="scrollViewer" Style="{StaticResource VerticalScrollViewerStyle}" Grid.Row="1">
<Grid Margin="120,0,20,20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="400" />
<ColumnDefinition Width="40" />
<ColumnDefinition Width="360" />
<ColumnDefinition Width="40" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border BorderBrush="Black" BorderThickness="1" Width="350" HorizontalAlignment="Left" Grid.Row="0">
<MediaElement x:Name="Video" AutomationProperties.Name="Video" Source="/Assets/Big_Buck_Bunny.mp4" HorizontalAlignment="Center" VerticalAlignment="Stretch" Height="250" Width="350" AutoPlay="True" IsLooping="True" />
</Border>
<Border BorderBrush="Black" BorderThickness="1" Height="65" Width="350" HorizontalAlignment="Left" Grid.Row="1">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="playButton" Margin="0,0" Click="playButton_Click" Style="{StaticResource PlayAppBarButtonStyle}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Button x:Name="pauseButton" Margin="0,0" Click="pauseButton_Click" Style="{StaticResource PauseAppBarButtonStyle}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
</Border>
</Grid>
</ScrollViewer>
</UserControl>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
Comment puis-je atteindre le but ?
OriginalL'auteur Justice | 2013-03-03
Vous devez vous connecter pour publier un commentaire.
Essayez ce qui suit:
Ensuite appeler à partir du bouton lecture /pause bouton:
Un lié billet de blog sur le sujet
OriginalL'auteur Paul Michaels
J'ai écrit un article de blog sur ce sujet il ya environ un an. Peut-être vous aider: http://blog.jerrynixon.com/2012/09/how-to-access-named-control-inside-xaml.html
L'essentiel est présent. Vous devez analyser à travers le visuel de l'arbre pour obtenir tous les éléments, et puis vous pouvez utiliser quelque chose comme LINQ pour filtrer les résultats et obtenir vos objets.
OriginalL'auteur Jerry Nixon - MSFT
J'ai prolongé de Jerry solution pour plus de flexibilité et une meilleure performance de la solution en obtenant seulement les contrôles nécessaires et de ne pas créer de intermédiés Listes lors des appels récursifs.
Vous pouvez utiliser simplement comme ça pour obtenir le contrôle:
Pour que vous devrait comprendre les éléments suivants AllChildren fonction:
OriginalL'auteur Alvaro Pereira