C# 在新窗口中打开模块
我试图打开一个由特殊目录解析的模块C# 在新窗口中打开模块,c#,wpf,prism,modularity,prism-6,C#,Wpf,Prism,Modularity,Prism 6,我试图打开一个由特殊目录解析的模块 返回新的DirectoryModuleCatalog(){ModulePath=@.\..\modules} 并希望在新的窗口中显示它 我该怎么做 我目前的做法是: public void OpenInNewWindow(string regionName) { var cc = new ContentControl(); _regionManager.RegisterViewWithRegion(regionName, () => cc
返回新的DirectoryModuleCatalog(){ModulePath=@.\..\modules}代码>
并希望在新的窗口中显示它
我该怎么做
我目前的做法是:
public void OpenInNewWindow(string regionName)
{
var cc = new ContentControl();
_regionManager.RegisterViewWithRegion(regionName, () => cc);
new Window
{
Content = cc
}.Show();
}
但这似乎不起作用。我的窗口
为空。假设您正在处理导航
,此行:
var cc = new ContentControl();
仅供演示。我想您应该在将内容控件分配给视图之前或在调用RegisterViewWithRegion
之前,向内容控件添加一个区域名称,如下所示。
var contentControl = new ContentControl();
RegionManager.SetRegionName(contentControl, regionName);
var window = new Window
{
Content = contentControl
}.Show();
RegionManager.SetRegionName
是一个附加属性,相当于:
<ContentControl regions:RegionManager.RegionName="MyRegion"></ContentControl>
我的目标只是在新窗口中加载模块。它就像一个工具库。有很多工具都有自己的视图、服务等等。在我的主程序中,我只有一个按钮“打开xyz插件”来运行这个模块。这在我的shell中非常有效(只是一个具有指定区域的内容控件)。但是我想在一个新窗口中运行模块,这是我的问题,这正是我想要的,非常感谢!很抱歉,我第一次没有正确阅读你的问题。我本应该仔细阅读你的问题,因此早些回答了你的问题。