在显示包含区域的窗口时出现WPF棱镜错误

本文关键字:WPF 棱镜 错误 窗口 显示 包含 区域 | 更新日期: 2023-09-27 18:02:29

我正在研究我的WPF Prism应用程序,并试图在Region中显示一些我不同的Views。所以我使用以下代码在我的Shell.xaml ,它工作得很好(它显示了多个视图下的其他)。

<ItemsControl x:Name="MainRegion" prism:RegionManager.RegionName="WorkspaceRegion" Width="400"/>

我有另一个Window命名为WinExtra.xaml。当用户单击Shell.xaml中的Button时,我的应用程序在Run-Time创建它的实例。

WinExtra里面我有一些TabControl和主题里面我保留了我的UserControls

现在我想把相同的Region像上面一样放在这些UserControls中的一个。所以我再写一遍上面的代码,但是这次是在WinExtra.xaml> TabControl1> TabItem1> UserControl1.xaml :

里面的
<ItemsControl x:Name="MainRegion" prism:RegionManager.RegionName="WorkspaceRegion" Width="400"/>

但是在我创建WinExtra on Showing 它的实例后,我得到这个错误:

类型的未处理异常"Microsoft.Practices.Prism.Regions.Behaviors。 RegionCreationException "发生在Unknown Module.

附加信息:创建区域时发生异常命名为"工作区"。例外情况是:System.Collections.Generic.KeyNotFoundException:

。你可以注册IRegionAdapter通过重写ConfigureRegionAdapterMappings方法来创建此控件

在Microsoft.Practices.Prism.Regions.RegionAdapterMappings.GetMapping(类型controlType)

在Microsoft.Practices.Prism.Regions.Behaviors.DelayedRegionCreationBehavior.CreateRegion (DependencyObject

注:我在这个项目中使用MahApps.Metro。所有窗口类型均为controls:MetroWindow

  • 上述错误的原因是什么?
  • 我该如何解决?

在显示包含区域的窗口时出现WPF棱镜错误

对我来说,问题是我有一个旧Prism的引用。导致冲突的组合包。一个简单的Uninstall-Package Prism.Composition <Project> -Force修复了这个问题。

我发现了错误原因&解决它。

我正在加载Prism dll程序集期间加载我的模块程序集后显示shell。

现在我阻止这个棱镜dll加载和没有任何RegionCreationException在我的项目