我有一个包含各种模块的应用程序。
我已将主shell(xaml)划分到不同的区域,现在我可以在这些区域加载模块。
但我要求在点击某个按钮时我必须打开一个新窗口,然后在新窗口中加载一个新模块。
我创建了一个新窗口,我正在打开该窗口,但窗口中有一个区域,主应用程序的RegionManager无法识别。
如何在不在主窗口但在子窗口上的区域上加载模块?
答案 0 :(得分:2)
您可以在以下 SkyDrive 公用文件夹中找到针对您的问题的快速示例解决方案,作为“ RegionInChildWindowWithNavigation ”:
根据我的理解,您提到的问题与在 ChildWindow 视图中设置RegionManager
属性相关,导致定义的{{1}可以从ModalWindowRegion
访问。以下是上述示例中的RegionManager
ChildWindow 视图构造函数。请注意,它还会添加一个事件处理程序,以便在关闭时正确删除 ChildWindow 中的所有视图。
ModalDialog
然后,您只需要[ImportingConstructor]
public ModalDialog(IRegionManager rm)
{
this.rm = rm;
this.SetValue(RegionManager.RegionManagerProperty, rm);
InitializeComponent();
this.Closed += new EventHandler(WindowsView_Closed);
}
void WindowsView_Closed(object sender, EventArgs e)
{
while (rm.Regions["ModalWindowRegion"].Views.Count() > 0)
{
rm.Regions["ModalWindowRegion"].Remove(rm.Regions["ModalWindowRegion"].Views.FirstOrDefault());
}
}
到指定的区域,该区域在{strong> ChildWindow 视图中定义{1}}如下:
RequestNavigate()
此外,您可能会发现以下CodePlex线程很有用:
我希望这会有所帮助。