Chame NavigationService do Silverlight UserControl que contém o quadro de navegação

StackOverflow https://stackoverflow.com//questions/9622993

  •  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á.

Foi útil?

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".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top