2013-10-07 64 views
0

我有一个应用程序与各种模块。在注册区域的新窗口打开棱镜模块

我已将主壳(xaml)分为不同的区域,现在我可以在这些区域中加载模块。

但我有要求在点击某个按钮我必须打开一个新窗口,然后在新窗口中加载一个新模块。

我创建了一个新窗口,我正在打开该窗口,但该窗口有一个区域,主应用程序的区域管理器无法识别。

如何在不在主窗口但在子窗口上的区域加载模块?

+0

我不确定你的意思。如果你有一个很好的小型工作示例代码。否则,请查看来自Microsoft的此示例。 https://code.msdn.microsoft.com/windowsdesktop/WPF-Child-Window-with-MVVM-f8e32d3e –

回答

2

您可以找到您的问题在下面SkyDrive的公共文件夹 “RegionInChildWindowWithNavigation” 快速样品溶液:

根据我的理解,这个问题你提到将涉及在设置RegionManager财产ChildWindow查看导致定义的ModalWindowRegion可从RegionManager到达。以上是来自上述示例的视图构造函数的ModalDialogChildWindow。请注意,它还添加了一个事件处理程序,以便在关闭时正确删除所有视图中的子视窗。

[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()); 
     } 
} 

然后,你只需要RequestNavigate()到指定地区这是在ChildWindow视图定义从RegionManager如下:

ModalDialogWindow.Show(); 
rm.RequestNavigate("ModalWindowRegion", new Uri("HelloWorldView", UriKind.Relative)); 

此外,你可能找到有用的以下CodePlex线程:

我希望这有助于。

+0

RegionInChildWindowWithNavigation链接不可用:(是否有其他来源? – John