棱镜导航:我可以请求只导航到一个特定的视图

时间:2012-01-30 07:30:33

标签: c# wpf prism

我使用prism 4.0,wpf,

我为devx DocumentGroup创建了RegionAdapter。

我有一个视图显示为DocumentPanel(DocumentGroup的子)的内容。 我在容器中注册视图。一切都很好。我可以请求查看DocumentGroup的区域。

container.RegisterType<Object, NatLossesView>("NatLossesView",new TransientLifetimeManager());

问题: 我只能在DocumentGroup项目中创建一个视图。 例如,我的程序已加载,面板上没有文档。 我做了

var NatLossesViewU = new Uri("NatLossesView", UriKind.Relative); regionManager.RequestNavigate("DocumentGroupRegion", NatLossesViewU);

显示视图。我想再创建一个视图实例,但调用以前的代码什么都不做。关闭视图后,我可以调用我的代码并再次显示视图

解决

我自己解决了我的问题。 ViewModel必须实现INavigationAware接口。 方法IsNavigationTarget应该是这样的:

public bool IsNavigationTarget(NavigationContext navigationContext)
{
            //throw new NotImplementedException();
            return false;
}

1 个答案:

答案 0 :(得分:1)

假设在您的区域适配器中,您确保添加的视图已正确添加到停靠窗口组项目列表中 - 请尝试以下代码,

var NatLossesViewobj = _container.Resolve<NatLossesView>() 
regionManager.AddToRegion("DocumentGroupRegion", NatLossesViewobj);