Позвоните в Navigationservice от Silverlight Usercontrol, который содержит навигационную рамку

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

  •  09-12-2019
  •  | 
  •  

Вопрос

У меня есть Usercontrol, который содержит рамку с помощью Urimapper.Это также мой rootvisual, так что это то, что загружено, когда приложение загружено.Это мой (упрощенный) XAML:

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

Это все работает отлично, но теперь я хочу добавить обратно кнопку.Когда пользователь нажимает кнопку, я хочу позвонить

NavigationService.GoBack();
.

Я могу назвать навигации сервиса со страниц (Page1 и Page2), но как я могу назвать навигациями сервиса от этого «родительского» USERCONTROL?Является ли это возможным?В этом USERCONTROL навигация всегда ноль.

Я бы либо хотел получить доступ к навигациям сервис с страниц, показанных в кадре, или пропустите событие кнопки щелчка на эти страницы.

Я не хочу ставить кнопку на каждой странице и обрабатывать там навигацию.

Это было полезно?

Решение

Попробуйте использовать

ContentFrame.Navigate(YOUR_URI);
.

и

ContentFrame.GoBack();
.

В вашем родительском USERCONTROL, который содержит навигационную рамку с X: name="contentframe".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top