问题标签 [prism]

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 投票
5 回答
1931 浏览

wpf - 棱镜有帮助吗?

我正在考虑使用 PRISM(复合 WPF 指导/库)构建应用程序。应用程序模块将被垂直划分(即客户、供应商、销售订单等)。这仍然相对容易......我还有一个带有主要区域的Shell,所有工作都会发生,但现在我需要以下行为:我需要我的主Shell上的一个菜单,并且当每个选项都被点击时(像客户、供应商等)我需要找到模块并将其加载到区域中(一次只能查看 1 个视图)?

有人知道任何具有这种行为的示例应用程序吗?所有示例都更侧重于将所有模块加载到主 shell 上?我的菜单栏也应该是一个模块吗?

[更新]如何根据从菜单中选择的模块将模块注入区域?所有的例子都表明模块在初始化时将视图注入到区域中?如果在菜单上选择了模块,我只需要注入视图吗?

0 投票
11 回答
27518 浏览

.net - WPF 应用程序在启动时失败并出现 TypeInitializationException

我有一个简单的 WPF 应用程序,我正在尝试启动它。我正在遵循 Microsoft 模式和实践“WPF 的复合应用程序指南”。我已按照他们的说明进行操作,但是我的 WPF 应用程序立即失败并出现“TypeInitializationException”。

InnerException 属性显示“'System.Windows.Navigation.BaseUriHelper' 的类型初始化程序引发了异常。”

这是我的 app.xaml:

这是我的 app.xaml.cs(在“public App()”处抛出异常):

我已将“App”类设置为项目中的启动对象。

什么会误入歧途?

0 投票
2 回答
3050 浏览

c# - CompositeWPF 是否支持多个窗口/外壳?

我正在考虑使用 CompositeWPF ( http://www.codeplex.com/CompositeWPF ) - 又名 Prism 来构建我正在开发的应用程序。

该应用程序不是传统的 LOB 应用程序,但它确实向用户呈现数据和状态信息。

我不确定的一件事是 CompositeWPF 是否支持多个窗口或外壳。我想让我的应用程序通过出现在屏幕下部 RHS 中的无边框窗口通知用户(想想 MSN 通知),但仍然使用将视图注入区域等的想法。

除此之外,我希望能够对用户操作(例如双击某物)做出反应,隐藏主窗口并在执行工作时显示进度对话框。

那么,这可能吗?

0 投票
0 回答
2418 浏览

user-controls - 棱镜和嵌套的用户控件

我已经使用 Prism 两天了,并且已经成功地在新的 Shell 上添加和使用了现有的 UserControls。这些用户控件仅包含纯 WPF 控件(按钮、列表等)。

我现在需要介绍由其他 UserControls 组成的现有 UserControls。

如果我的理解是正确的,我相信我需要重新开发这些控件以以与 shell 相同的方式使用区域,并在适当的控制器/演示器上定义 Run() 方法以注入 (sub)UserControl。

这个对吗?

0 投票
4 回答
7204 浏览

wpf - 如何在初始化后激活/停用模块的视图?

这与 WPF 或 Prism 的复合应用程序指南有关。

我的外壳中有一个“MainRegion”。我的各种模块将被加载到这个主要区域。我可以在菜单中填充可用模块的列表并选择它们进行加载。单击菜单,我会执行以下操作:

第一次一切正常,因为执行了模块的Initialize()方法,但是在Module1,Module2和Module3初始化之后,再次点击加载Module2时没有任何反应。

我的问题:在执行了初始化方法后,如何按需激活模块?

感谢您的帮助!

0 投票
1 回答
9309 浏览

wpf - 在 Prism 中使用 ModuleManager 加载模块

这个问题也发布在Prism 的 Codeplex 网站上

我对按需加载模块有点迷茫,希望你们能不吝赐教。我正在使用v2 #7

这是我想要完成的事情:

1) 我有 2 个区域 - 一个用于实例化模块的按钮 (MenuRegion),另一个用于显示模块 (MainRegion)。在 MenuRegion 中一次只能看到一个模块。
2) 模块位于目录中
3) MenuModule 模块与 MenuRegion 相关联,用于创建显示模块名称的按钮。当单击其中一个按钮时,相应的模块将被加载并显示在 MainRegion 中。
4) 行为:
    a) 单击 ModuleA 按钮并显示 ModuleA。用户在 ModuleA 中输入数据,数据处于未保存状态。
    b) 单击 ModuleB 按钮并显示 ModuleB。用户在 ModuleB 中输入数据,数据处于未保存状态。
    c) 单击 ModuleA 按钮,ModuleA 将显示先前输入的信息。

如果我的假设有误,请纠正我,并请给我其他建议:

1) MainRegion 应该是一个 ContentControl,因此一次只能看到一个模块。
2)我想我需要枚举我的目录的“GrouplessModules”来获取目录中可用模块的 ModuleInfo
3)要加载模块,我认为我需要调用 myModuleManager.LoadModule(moduleName)

最后,我的问题:

1) 我应该在 MenuModuleView 的构造函数中将 moduleManager 作为参数吗?
2) 我如何获取从 MenuModuleView 内部访问的目录,以便枚举可用模块?
3) 在MenuModuleView 中,当我枚举模块时,我创建了按钮,将ModuleInfo 分配给按钮的Tag 属性。这样,我只有一个点击事件来加载模块。它是否正确?对我来说,它闻起来有点变通...

非常感谢你的帮助!!!

0 投票
3 回答
6835 浏览

.net - 解决类而不使用 Castle Windsor 注册它们

采取以下无用程序:

UnityContainer 将返回一个 Program 实例,而 Windsor 容器将抛出 ComponentNotFoundException。

我可以看到这两种行为的论据并且不介意我最终得到的结果,但是 Prism V2 Drop 8(撰写本文时的最新版本)在内部依赖于 Unity 行为,请求尚未注册的类。

与其为 Prism 找到并注册所有这些类,不如让 Windsor 表现得像 Unity。我在谷歌上没有找到任何可以帮助我做到这一点的东西(尽管我的术语可能是错误的)而且温莎文档非常糟糕......

任何人都可以提出解决这个问题的方法吗?

0 投票
3 回答
1784 浏览

wpf - 与 TabItems 多次使用相同的模块

这是我的场景:

  1. 带有 1 个 TabControl 和 1 个名为 MenuRegion 的区域的外壳
  2. MenuRegion 包含每个可用模块(应用程序)的按钮。

我想使用 Prism (Composite Application Library for WPF) 实现以下目标:单击其中一个按钮时,我需要向 TabControl 添加一个新的 TabItem,并在此 TabItem 内加载相应模块(应用程序)的单个实例. 一个模块可能会在 TabControl 中出现多次。


我真的很感谢你的回答。但我不相信您使用的是 Prism ( http://www.codeplex.com/CompositeWPF ) 是吗?我的问题与棱镜更相关,我现在对其进行了编辑以使其更加清晰。

在 Prism 中,您可以将模块的视图动态加载到区域中。我不确定如何在我的场景中做到这一点,因为这些区域是动态设置的。我将如何命名它们?

谢谢!

0 投票
1 回答
2377 浏览

c# - CompositeWPF:EventAggregator - 何时使用?

我一直在研究Composite Application Library,它很棒,但我无法决定何时使用 EventAggregator ......或者更确切地说 - 何时不使用它。

看看 StockTraderRI 的例子,我更加困惑。他们在某些情况下使用 EventAggregator,在其他情况下使用“经典”事件(例如 IAccountPositionService 接口)。

我已经决定将它用于与繁重的工作任务进行通信,该任务应该在后台线程上运行。在这种情况下,EventAggregator 在幕后提供线程编组,所以我不必太担心。除此之外,我喜欢这种方法提供的解耦。

所以我的问题是:当我开始在我的应用程序中使用 EventAggregator 时,为什么不将它用于所有自定义事件?

0 投票
1 回答
2054 浏览

.net - 推荐的 Prism v2 Silverlight/WPF 项目结构

我目前的任务是向我所在公司的所有开发人员介绍 Silverlight (v2)。唯一的问题是我自己没有任何真正的 Silverlight 经验。当然,我已经研究了有关数据绑定、布局等的所有技术细节,因此我可以帮助我的同事。但是很难找到任何信息的一件事是一般项目结构。

我决定遵循 P&P Prism 2 的道路(甚至可能在以后加入一些 WPF),所以我想知道你们中是否有聪明人有使用 Prism 2 甚至只是 WPF 开发真实项目的经验,如果您对项目/解决方案结构有任何建议?例如“你把视图放在哪里?” 或“您有任何模块项目命名约定吗?” 等等

任何帮助将不胜感激。