Вероятно, это один из тех вопросов, где ответ на самом деле должен быть слишком очевидным, чтобы его можно было пропустить.Тем не менее, я не могу понять, почему мое приложение «играть и учиться» ведет себя так, как оно работает.
На моем Mainpage.xaml
у меня есть StackPanel
, содержащий несколько HyperlinkButtons
, который перемещается к набору NavigationPages
.Существует также NavigationFrame
с UriMapper
для хранения "страниц".
<StackPanel Background="Black" Orientation="Horizontal" Grid.Row="0">
<HyperlinkButton Name="Home"
TargetName="MainPageFrame" NavigateUri="/Home"
Foreground="White" FontWeight="Bold" Content="Home" />
<HyperlinkButton Name="Users"
TargetName="MainPageFrame" NavigateUri="/Users"
Foreground="White" FontWeight="Bold" Content="Users" />
<HyperlinkButton Name="Store" Foreground="White" FontWeight="Bold" Content="Store"
TargetName="MainPageFrame" NavigateUri="/Stores"/>
</StackPanel>
<navigation:Frame x:Name="MainPageFrame" Grid.Row="1" Source="/Home" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" JournalOwnership="Automatic">
<navigation:Frame.UriMapper>
<uriMapper:UriMapper>
<uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>
Вот проблема.Когда я перехожу назад и вперед между страницами (то есть: нажимаю на Магазины, Пользователи и обратно на Магазины), тогда создаются две страницы Магазинов.Хотя это не видно в приложении на первый взгляд, проблема материализуется, когда я открываю дочернее окно со страницы магазинов.
Поскольку я использую легкие сообщения MVVM, чтобы уведомить, что дочернее окно должно открыться, ... Iполучить два дочерних окна (или по одному на каждый раз, когда я заходил на страницу навигации по магазинам с помощью кнопок гиперссылок).
Я предполагал, что при нажатии на кнопки гиперссылок у вас будет только одна NavigationPage .. или как минимумток был разрушен при выходе из навигационной страницы.
Что за очевидная вещь мне не хватает?