我有一个基于 Prism 2009 年 2 月发布的 WPF 项目,设置为:
Shell 将单个 ContentControl 公开为“MainRegion” 在名为 SplitView 的基础结构项目中定义的另一个视图(用户控件)公开了两个附加区域“LeftRegion”和“RightRegion”,也作为 ContentControl。
我的应用程序的一些模块需要在 MainRegion(一个用户控件)中显示它们的视图,而其他模块需要在 LeftRegion 和 RightRegion 中显示它们的视图(两个用户控件以拆分方式)。
我已经尝试使用范围区域,假设特定的控制器将持有对范围区域的引用。所以基本上每个对 SplitView 功能感兴趣的控制器都应该实例化一个新的 SplitView(用户控件)并在 MainRegion 中激活它,同时在新创建的作用域SplitView 区域的 LeftRegion 和 RightRegion 中激活它的两个用户控件。
我正在使用带有视图注入的 MVVM 来显示视图。
不用说,这种方法出现了可怕的错误。
在运行时我得到这个异常,“创建一个名为‘LeftRegion’的区域时发生异常。异常是:System.InvalidOperationException:指定元素已经是另一个元素的逻辑子元素。首先断开它。”
我是否正确假设每次实例化 SplitView 时 LeftRegion 和 RightRegion 都试图向主 RegionManager 注册自己?
对令人困惑/冗长的帖子感到抱歉。有什么建议么?实现这一目标的最佳实践?
提前致谢,
阿里