Chame NavigationService do Silverlight UserControl que contém o quadro de navegação
-
09-12-2019 - |
Pergunta
Tenho um UserControl que contém um Frame com um UriMapper.Este também é o meu RootVisual, portanto é o que é carregado quando o aplicativo é carregado.Este é o meu XAML (simplificado):
<UserControl>
<navigation:Frame x:Name="ContentFrame" Source="/Page1">
<navigation:Frame.UriMapper>
<uriMapper:UriMapper>
<uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
<uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>
<HyperlinkButton x:Name="Page1Link" NavigateUri="/Page1" TargetName="ContentFrame" Content="Page1"/>
<HyperlinkButton x:Name="Page2Link" NavigateUri="/Page2" TargetName="ContentFrame" Content="Page2"/>
</UserControl>
Tudo isso funciona muito bem, mas agora quero adicionar um botão Voltar.Quando o usuário clica no botão, quero ligar
NavigationService.GoBack();
Posso chamar o NavigationService a partir das páginas (Página1 e Página2), mas como posso chamar o NavigationService a partir deste UserControl 'pai'?É possível?Neste UserControl, o NavigationService é sempre nulo.
Eu gostaria de acessar o NavigationService a partir das páginas mostradas no Frame ou passar o evento de clique do botão para essas páginas.
Não quero colocar um botão em cada página e cuidar da navegação lá.
Solução
Tente usar
ContentFrame.Navigate(YOUR_URI);
e
ContentFrame.GoBack();
em seu UserControl pai que contém o quadro de navegação com x:Name="ContentFrame".