问题标签 [prism-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8259 浏览

c# - 每次在 PRISM 中发生导航时如何创建新视图?

我正在为我的新项目使用 WPF4 和 PRISM4。

有一个包含多个视图的模块。DI是统一完成的。当我第一次从 ViewA 导航到 ViewB 时,会创建 ViewB 并调用其构造函数。但是当我第二次、第三次尝试导航到 ViewB 时,没有创建 ViewB,而是重用了现有实例。

我使用IRegionManager.RequestNavigate进行导航。

我试图将TransientLifeTimeManager传递给RegisterType Unity 方法,但无济于事。

有没有办法配置 prism 和/或 unity 以在我每次导航到它时创建一个新视图?

谢谢。

0 投票
1 回答
11323 浏览

c# - 棱镜 4:RequestNavigate() 不工作

我正在构建一个演示应用程序来学习 Prism 4 的导航功能。该应用程序有两个模块——每个模块都有三个视图:

  • 带有文本块的用户控件(“欢迎使用模块 A”)
  • RibbonTab(使用区域适配器),以及
  • Outlook 风格的任务按钮(如 Outlook 的邮件、日历等)

Shell 具有三个命名区域:“RibbonRegion”、“TaskButtonRegion”和“WorkspaceRegion”。视图加载到这些区域。为了测试基本设置,我在 Prism 区域管理器中注册了所有三个视图,以便它们在启动时加载,并且都按预期工作。

接下来,我修改了设置,以便在启动时仅加载任务按钮。其他视图将仅在请求时通过单击任务按钮加载。我的模块初始化程序如下所示:

当用户单击任务按钮时,它会调用一个 ICommand 对象,该对象调用IRegionManager.RequestNavigate()以显示视图:

单击任务按钮时正在调用该命令,但我得到的是:

演示应用屏幕截图

UserControl 显然加载为System.Object,我怀疑 RibbonTab 加载相同。我认为问题出在我的RequestNavigate()电话或我在 Unity 的注册上。但我无法确定问题所在。

任何人都可以阐明发生了什么吗?谢谢你的帮助。

0 投票
1 回答
543 浏览

c# - Prism 4:如何隐藏 ItemsControl 中的项目?

我正在创建一个 Prism 4 演示应用程序来学习新框架,重点是视图切换。该应用程序有几个区域,其中之一是一个 ItemsControl,它包含当前活动模块中的一个或多个按钮。

我在每个模块的Initilize()方法中使用区域管理器注册按钮。这是第一个模块的注册码:

第二个模块以相同的方式注册其按钮。我用来RequestNavigate()在两个模块之间切换。

这是我的问题:来自两个模块的按钮在 中可见ItemsControl,而不仅仅是来自活动模块的按钮。我考虑将 a 更改ItemsControl为 aContentControl并将按钮放入 a StackPanel,但由于我不会在这里让您感到厌烦的原因,这对我不起作用。我需要做的是:

  • 当一个模块被激活时加载按钮,当我切换到另一个模块时卸载它们,或者

  • 当一个模块被激活时显示按钮,当我切换到另一个模块时隐藏它们。

我如何在 Prism 4 中做到这一点?谢谢你的帮助。

0 投票
1 回答
2347 浏览

c# - 如何在 Prism4 MEF 中创建我的类的实例?

我已经配置了容器:

如何在模块中创建我的类型 T 的实例?类型 T 在由 MEF 配置的程序集中的某处定义。

我需要一些这样的:

UPD1。我的模块

0 投票
2 回答
2057 浏览

c# - PRISM + MEF -- 导入服务

我试图弄清楚如何正确地将服务导入到我的 ViewModel 中......这是我的相关代码(我省略了不重要的东西):

ClientBootstrapper.cs

ClientShell.xaml.cs

ClientViewModel.cs

随机服务.cs


我确实收到了所有导入部分都已满足的通知 (1),但随后我在 ClientViewModelreturn Random.Next();内部收到了 NullReferenceException (2)。不知道为什么在我被告知所有 Imports 都满足后我会得到 NullReferenceException ......

0 投票
2 回答
463 浏览

silverlight - Silverlight 4 + Prism 将动态字符串添加到 shell 中的标题栏

我用 Prism4 构建了一个 Silverlight 4 应用程序。我在 shell.xaml 中创建了几个内容区域,一切正常。现在我想做以下事情: 在 shell.xaml 中,布局中有一个标题栏(其中有一个标签,如下所示)。在那里,我们希望根据我的主要内容区域中显示的视图动态更改标题字符串的值。关于如何以简单的方式完成此任务的任何想法?

谢谢!

0 投票
1 回答
3200 浏览

silverlight-4.0 - Prism RegionManager 和 Unity 容器的问题

我有一个主要的 Silverilght 项目和其他模块,我正在使用 Prism 将它们与 Unity 一起用于依赖注入。

我有一个依赖于 Unity 的模块,IRegionManager它自然会被 Unity 注入。

我遇到的问题是,我得到的Regions属性RegionManager不包含任何区域,即使我已经在我的 Shell 中声明了其中两个区域,如下所示:

我无法弄清楚这种行为的原因。我尝试RegionManager使用将 a 注册为单例

以及离开统一处理这个。但是,我得到了相同的结果:(

我想要实现的是将视图注入特定区域并激活它,这是无法使用的

这就是为什么我需要掌握“MainRegion”对象本身并对其进行操作。

我希望有人能解决这个问题。我将非常感谢:)

编辑:我应该提一下,视图发现工作得很好,我可以RegisterViewWithRegion,但是当我检查 的Regions属性时RegionManager,我发现它是空的!

0 投票
2 回答
1922 浏览

wpf - 如何在应用程序启动时预加载 Prism 视图?

我们将Prism 4 用于 WPF以及Prism 附带的导航功能。

当导航到(加载)我们应用程序中的某些视图时,我们注意到延迟 - 可以理解,这来自于实例化视图及其依赖项,这包括从磁盘加载必要的程序集。

我们想在应用程序启动时预加载这些视图,同时显示启动屏幕或类似的东西。

有没有人做过类似的事情并想分享他们的经验?

0 投票
1 回答
4680 浏览

wpf - WPF,棱镜,MEF。在模块中注册区域适配器?

是否可以在模块中注册区域适配器?

我的 Shell.xaml 中有一个 ContentControl 设置为区域“MainRegion”,该区域当前填充有包含 AvalonDock 控件的模块。我目前在我的 Shell 应用程序中有 AvalonDock 区域适配器,但想将它放在模块中并自行注册。我想保持这个程序的灵活性,这样如果我们决定使用 AvalonDock 以外的东西,我可以轻松地使用另一个模块,而无需修改我的 Shell 程序集(移除 avalondock 区域适配器)。

我想这样的事情是可能的。有没有人这样做过?

现在在引导程序中是:

这就是我想在模块而不是 Shell 引导程序中执行的操作。

0 投票
1 回答
1025 浏览

wpf - 如何使用 MEF 和 WPF 将视图添加到 Prism 中的项目控件

我有一个应用程序,到目前为止只有 2 个视图。视图 1 是一个列表,第二个是详细视图(一旦您在视图 1 中选择了一个项目。

我已经在我的 Prism shell 中设置了一个区域,并且可以加载我的模块。我想要的是最初只加载模块 1。当我从 1 中选择了一个项目时,我想导航到 2(然后它会显示在我的 itemscontrol 中(顺便说一下,它是一个选项卡控件)。

我遇到的问题是我要么得到 a) 两个视图最初都显示在我的选项卡控件中。

b) 如果我将视图 b 的模块上的导出属性更改为按需初始化,当我单击导航到视图 b 时,什么也没有发生。

任何帮助将非常感激。谢谢。