Я реализую навигацию Prism во всплывающем окне, поднятом с помощью объекта InteractionRequest. Мой основной вид содержит область TabControl с 2 представлениями (представление A, представление b). Основной вид выглядит так:
<Grid>
<TabControl prism:RegionManager.RegionName="PrivateVehiclePopupRegion">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
</Grid>
Представление A содержит кнопку с командой для перехода к представлению B. Точно так же представление B содержит кнопку для перехода к представлению A. Все три представления используют одну и ту же модель представления (в которой я убедился, что только один экземпляр создана модель просмотра).
Представление A и представление B регистрируются в методе Initialize модуля:
public void Initialize()
{
...
RegionManager.RegisterViewWithRegion(RegionNames.PrivateVehiclePopupRegion, typeof(PrivateVehiclePopupReadView)); // View A
RegionManager.RegisterViewWithRegion(RegionNames.PrivateVehiclePopupRegion, typeof(PrivateVehiclePopupEditView)); // View B
}
Когда я выполняю программу, загружается представление A, но когда нажимается соответствующая кнопка для перехода к другому представлению, метод NavigateToViewB() успешно достигается, но при вызове RequestNavigate ничего не происходит. Я также попытался инвертировать порядок, в котором регистрируются представления, поэтому представление B регистрируется первым, а представление B загружается, но RequestNavigate к A не работает.
Я добавил метод обратного вызова для исследования проблемы, например:
private void NavigateToEdit()
{
this.regionManager.RequestNavigate(RegionNames.PrivateVehiclePopupRegion, EditUri,
(NavigationResult nr) =>
{
var error = nr.Error;
var result = nr.Result;
// put a breakpoint here and checkout what NavigationResult contains
});
}
Однако ошибка равна нулю, а результат - ложно... что ничего не говорит. Любые идеи? Я делал навигацию раньше, и она работает нормально, но я впервые реализую навигацию во всплывающем окне.