gpt4 book ai didi

c# - 如何使用 Prism 和 Unity 显示一个 View 的多个实例

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:15 30 4
gpt4 key购买 nike

我正在使用 WPF、Unity 和 Prism 4 开发一个 .Net 应用程序。该应用程序将包含一个 shell,在选项卡页面上有多个 View 。该应用程序严重依赖名为 SystemTreeModule 的模块,该模块包含将出现在许多地方的 SystemTreeView

我刚刚完成我的第一个 View ,我在其中定义了一个名为“SystemTreeRegion”的区域。在 SystemTreeModule 中,我在该区域注册了一个 SystemTreeView 实例。奇迹般有效! SystemTreeView 类型是使用 Unity 的自动发现功能发现的(因此未明确注册):

public void Initialize()
{
_regionManager.RegisterViewWithRegion("SystemTreeRegion", () => _container.Resolve<SystemTreeView>());
}

现在是时候开始第二个模块的工作了,我想在其中使用 SystemTreeView。当我在新 View 中创建一个名为“SystemTreeRegion”的区域时,我感到非常自信,但它失败了,出现以下异常:

An exception occurred while creating a region with name 'SystemTreeRegion'. The exception was: System.ArgumentException: Region with the given name is already registered: SystemTreeRegion

所以我用谷歌搜索并在 StackOverflow 上搜索了答案,但我一直无法弄清楚你应该如何做到这一点!

我什至不知道我是否只是遗漏了一些细节,或者我是否在概念上偏离了......

最佳答案

您在概念上并没有偏离。通过模块提供 View 是非常好的。但请记住,您的应用程序中只能有一个名为“SystemTreeRegion”的 View ,否则 Prism 的区域管理器将不知道您要访问哪个 View 。

考虑到这一点 - 如果您尝试将 View 注册到区域名称并希望该 View 将出现在带有该名称的每个区域中,那么您在概念上是错误的。您只能将 View 注册到一个区域。

因此只需确保每个区域都有自己唯一的名称,然后为该区域注册您需要的 View 就可以了。

关于c# - 如何使用 Prism 和 Unity 显示一个 View 的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14214911/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com