我有一个应用程序与各种模块。在注册区域的新窗口打开棱镜模块
我已将主壳(xaml)分为不同的区域,现在我可以在这些区域中加载模块。
但我有要求在点击某个按钮我必须打开一个新窗口,然后在新窗口中加载一个新模块。
我创建了一个新窗口,我正在打开该窗口,但该窗口有一个区域,主应用程序的区域管理器无法识别。
如何在不在主窗口但在子窗口上的区域加载模块?
我有一个应用程序与各种模块。在注册区域的新窗口打开棱镜模块
我已将主壳(xaml)分为不同的区域,现在我可以在这些区域中加载模块。
但我有要求在点击某个按钮我必须打开一个新窗口,然后在新窗口中加载一个新模块。
我创建了一个新窗口,我正在打开该窗口,但该窗口有一个区域,主应用程序的区域管理器无法识别。
如何在不在主窗口但在子窗口上的区域加载模块?
您可以找到您的问题在下面SkyDrive的公共文件夹 “RegionInChildWindowWithNavigation” 快速样品溶液:
根据我的理解,这个问题你提到将涉及在设置RegionManager
财产ChildWindow查看导致定义的ModalWindowRegion
可从RegionManager
到达。以上是来自上述示例的视图构造函数的ModalDialog
ChildWindow。请注意,它还添加了一个事件处理程序,以便在关闭时正确删除所有视图中的子视窗。
[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线程:
我希望这有助于。
RegionInChildWindowWithNavigation链接不可用:(是否有其他来源? – John
我不确定你的意思。如果你有一个很好的小型工作示例代码。否则,请查看来自Microsoft的此示例。 https://code.msdn.microsoft.com/windowsdesktop/WPF-Child-Window-with-MVVM-f8e32d3e –