我在用IRegionManager
要加载并导航到视图,我可以将内容加载到主视图中的主区域,该主视图加载了引导程序类,但我无法将内容加载到已加载视图内的区域,区域管理器似乎没有注册这些地区。
我的引导程序类:
protected override DependencyObject CreateShell()
{
return this.Container.Resolve<MainWindowView>();
}
protected override void InitializeShell()
{
Application.Current.MainWindow.Show();
}
protected override void ConfigureContainer()
{
base.ConfigureContainer();
this.Container.RegisterTypeForNavigation<DocumentView>();
this.Container.RegisterTypeForNavigation<EmailView>();
this.Container.RegisterTypeForNavigation<WorkTypeSelectionView>();
}
the DocumentView
是用户控制另一个区域时触发命令时运行的方法是这样的:
private void ViewEmailAction()
{
NavigationParameters parameters;
parameters = new NavigationParameters();
parameters.Add(nameof(this.CurrentEmail), this.CurrentEmail);
this.regionManager.Regions[this.EmailRegion].RequestNavigate(nameof(EmailView), parameters);
}
这会引发异常并带有消息"The region manager does not contain the EmailRegion region."
提前致谢!
这里发生了两件不同的事情:
用户控制:
这应该可以解决任何问题。您可能正在尝试导航到尚未加载的视图中定义的区域。确保您在加载后导航到某个区域。在 ViewModel 构造函数内部导航是此问题的最大根源之一。如果你想将你的示例发布到 GitHub,我可以看一下。
控制模板:
这是 Prism 中的一个已知问题。这是你的修复:
http://southworks.com/blog/2011/11/10/regions-inside-datatemplates-in-prism-v4-using-a-region-behavior/ http://southworks.com/blog/2011/11/10/regions-inside-datatemplates-in-prism-v4-using-a-region-behavior/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)