UIElements J'ai une liste de liens hypertextes qui sont affichés par un ItemsControl
, quelque chose comme ceci:ItemsControl.Items Énumérer comme
<ItemsControl x:Name="SubMenu" Visibility="Collapsed">
<ItemsControl.ItemTemplate>
<DataTemplate>
<HyperlinkButton Content="{Binding Name}"
NavigateUri="{Binding Url}"
TargetName="ContentFrame"
Style="{StaticResource LinkStyle}"
/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Style="{StaticResource LinksStackPanelStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Left" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
ce que je dois faire est d'énumérer les hyperliens réels dans le sous-menu, quelque chose comme ça :
foreach (UIElement child in SubMenu.Items) // this does not work!
{
HyperlinkButton hb = child as HyperlinkButton;
if (hb != null && hb.NavigateUri != null)
{
if (hb.NavigateUri.ToString().Equals(e.Uri.ToString()))
{
VisualStateManager.GoToState(hb, "ActiveLink", true);
}
else
{
VisualStateManager.GoToState(hb, "InactiveLink", true);
}
}
}
Le problème est que je ne peux pas l'air de trouver un moyen d'énumérer les éléments d'interface utilisateur réels dans les ItemsCollection.Items.
Quelqu'un sait-il comment faire ou une solution de contournement possible?
Je peux mentionner que ce que j'essaie de faire est de construire un menu et un sous-menu qui affichent les hyperliens cliqués comme une sorte de fil d'Ariane.
MISE À JOUR: La meilleure chose serait si je pouvais arriver à ce StackPanel en quelque sorte parce que ce code semble fonctionner:
foreach (UIElement child in LinksStackPanel.Children)
{
HyperlinkButton hb = child as HyperlinkButton;
if (hb != null && hb.NavigateUri != null)
{
if (hb.NavigateUri.ToString().Equals(e.Uri.ToString()))
{
VisualStateManager.GoToState(hb, "ActiveLink", true);
}
else
{
VisualStateManager.GoToState(hb, "InactiveLink", true);
}
}
}
Cela mérite plus de votes. Il suffit de placer sur le net, j'ai trouvé la solution après avoir cherché un jour. –