Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 在RegionManager中找不到区域(使用PRISM)_Wpf_Prism_Cab - Fatal编程技术网

Wpf 在RegionManager中找不到区域(使用PRISM)

Wpf 在RegionManager中找不到区域(使用PRISM),wpf,prism,cab,Wpf,Prism,Cab,我正在用Prism写一个应用程序。我有一个用户控件,包含两个控件。它们都有指定给它们的区域。用户控件托管在一个窗口中,该窗口使用ShowDialog()显示 我使用视图发现将一个视图添加到一个区域中,另一个视图要将视图注入到其区域中。view discovery运行良好。但是,当我尝试引用另一个区域以注入视图时,会出现异常: KeyNotFoundException 区域管理器不包含MyRegion区域 当我查看RegionManager区域时,无论是我尝试注入视图的区域还是使用视图发现的区域都

我正在用Prism写一个应用程序。我有一个用户控件,包含两个
控件。它们都有指定给它们的区域。用户控件托管在一个
窗口中,该窗口使用
ShowDialog()
显示
我使用视图发现将一个视图添加到一个区域中,另一个视图要将视图注入到其区域中。view discovery运行良好。但是,当我尝试引用另一个区域以注入视图时,会出现异常:

KeyNotFoundException
区域管理器不包含MyRegion区域

当我查看RegionManager区域时,无论是我尝试注入视图的区域还是使用视图发现的区域都不存在

我在与贝壳不同的窗口里,这有关系吗?我原以为只有一个RegionManager,但必须有两个才能让我的视图发现继续工作。。。?还是因为我在应用程序生命周期的后期创建了两个新区域?还是因为新区域不在我的主区域内

编辑:

在做了一些挖掘之后,它看起来像是创建了区域,但是它找不到RegionManager的实例,所以它没有被添加。有什么线索吗?

现在排序。我需要在presenter类的构造函数中注册区域管理器。
这样,我的新窗口中的区域就可以找到我的全局区域管理器


RegionManager.SetRegionManager(作为DependencyObject、RegionManager查看)

您还可以在窗口而不是视图上设置RegionManager。请看我的回答:@Cameron我现在遇到了一个问题,当我第二次显示对话框时,它会给我一个updateRegionException。有什么线索吗?当你关闭窗口时,你需要解除区域管理器的设置。有没有关于如何操作的线索?看不到任何看起来可以完成任务的方法。请使用与上面相同的方法,只需传递null作为值。SetRegionManager(作为DependencyObject查看,null);