Prism RequestNavigate无法在弹出窗口

时间:2017-01-05 09:34:10

标签: wpf navigation prism interaction regions

我在使用InteractionRequest对象引发的弹出窗口中实现Prism导航。我的主视图包含一个带有2个视图的TabControl区域(视图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时,没有任何反应。我还试图反转注册视图的顺序,因此首先注册View B,并加载View B,但RequestNavigate to 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
        });
}

Howerver,Error为null,Result为false ......没有任何说明。有任何想法吗?我以前做过导航并且工作正常,但这是我第一次在弹出窗口上实现导航。

0 个答案:

没有答案