问题标签 [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 投票
1 回答
2489 浏览

c# - 如何使用 Unity 的 Resolve<>() 方法向对象的构造函数发送参数?

在 Prism 中使用 Unity,我想向对象的构造函数发送一个参数,如下所示:

但相反,我必须将其实例化,然后分配一个属性:

有没有办法直接向构造函数发送参数?

0 投票
2 回答
808 浏览

wpf - Composite WPF 应用程序中的嵌套菜单区域

复合 WPF 应用程序中是否可以有嵌套区域?我希望模块能够注入新菜单,也能够将菜单项注入现有菜单。

使用以下代码会RegionManager引发异常:

区域管理器不包含MainFileMenuRegion区域

0 投票
1 回答
838 浏览

c# - Prism 和 AnimatedTabControl

我很想使用它,但我一生都无法弄清楚如何将物品绑定到它。

我想看一个简单的例子,比如

壳牌.xaml

--

需要什么代码才能让多个选项卡在TestRegion. 我似乎无法弄清楚如何将任何东西绑定到 AnimatedTabControl 甚至是常规选项卡控件......

0 投票
2 回答
1864 浏览

wpf - 依赖于 MouseEventArgs 的单元测试功能?

我目前正在开发我的一个项目,它是一个类似于 MSPaint 的 WPF 应用程序。但是,我不使用铅笔工具或类似的工具,而是使用对象(矩形、圆形、三角形等)进行绘画。我使用 Prism 和 MVVM 模型来实现可测试性和可维护性。

我现在遇到了一个问题。我有一个 CanvasView.xaml (顾名思义)我正在画的画布。我已经实现了自定义 Prism CommandBehaviors(即 MouseDownCommandBehavior),以提供一种将 ViewModel 的命令绑定到画布上的鼠标操作的方法。

基本设置如下所示:

代码中没有的一些东西:

  • PaintObjects 是 View 上的 ItemsControl 绑定到的 PaintObject 对象的集合
  • PaintObject 是所有可用 PaintObject(矩形、圆形、三角形等)的基类。
  • SelectedObject(PaintObject 类型)由另一个 Prism 模块(工具箱)中的选择过程确定

问题是如何对 OnMouseLeftButtonDown 方法进行单元测试?问题是它严重依赖 MouseEventArgs,我真的不知道模拟/存根 MouseEventArgs 的好方法。

0 投票
3 回答
4817 浏览

c# - 将 RoutedEvent 或 RoutedCommand 冒泡到 ViewModel

我有一组 ViewModels,它们使用一种样式呈现为选项卡,以提取相关内容以显示在选项卡上:

这是 TabControl:

这是风格

我们正在创建一个用户控件的实例并将 TabViewModel 的“内容”属性设置为这样,以便用户控件显示在 TabItem 的内容区域中。

我的问题是,我想允许添加到 TabViewModel 的 Content 属性的 MyUserControl(或其任何子控件)被允许引发 TabViewModel 处理的事件

有人知道我会怎么做吗?

我们已经尝试使用 RoutedEvents 和 RoutedCommands,但无法让任何东西 100% 工作并使其与 MVVM 兼容。我真的认为这可以通过 RoutedEvent 或 RoutedCommand 来完成,但我似乎无法让它工作。

注意:我已经删除了一些与 Prism 相关的特定代码,但如果您想知道为什么我们会做一些如此愚蠢的事情,那是因为我们试图通过使用 Prism 的 RegionManager 来保持与控制无关。

0 投票
2 回答
782 浏览

architecture - WPF 中的复杂视图

我正在做一个个人项目。我从上一篇文章开始(销售点应用程序架构)。

尝试使用-存储库-服务和查看模式-查看方法

请参阅随附的图像文件。我的大多数窗户都会有多个视图。

我的问题是:

  1. 看着窗户,你认为我的项目是 CAG(棱镜)的一个很好的候选还是它是一个矫枉过正
  2. 我是否能够获得 POPUp 模态窗口并从其父视图区域模块与它们进行通信。
  3. Prism 中的多个窗口(假设我可以创建多个 shell),它们之间的通信是否复杂
  4. 在 SO 上阅读有关使用子视图作为属性创建复杂视图的信息。这是一个好方法还是代码太多

我越是考虑应用一些模式,我就越感到困惑

我相信你们中的一些人有类似的问题,可能你的方法可能会为我解决问题。

谢谢你,马尔

http://www.flickr.com/photos/themarworld/3820178039/ http://www.flickr.com/photos/themarworld/3820178039/

0 投票
1 回答
455 浏览

prism - 仅更改私有成员变量的单元测试功能?

我目前正在为我的项目中使用 Prism 和 MVVM 模式的 ViewModel 编写单元测试。

我的视图主要由一个 ItemsControl 组成,它对不同的鼠标事件(LeftMouseButtonDown、LeftMouseButtonUp 等)做出反应。当这样的鼠标事件发生时,EventArgs 和其他一些粘合信息被传递给 ViewModel,并调用适当的方法(MouseMove 事件 --> OnMouseMove 方法)。

通过这种方式,我实现了一种方法来拖动以前添加到 ItemsControl 的项目。这是通过在 OnMouseLeftButtonDown 方法中设置两个成员变量“movingObject”和“gripPoint”并在 OnMouseLeftButtonUp 方法中将变量设置为 null 来实现的。

现在出现的问题是我是否应该对这些函数(LeftButtonUp、LeftButtonDown)进行单元测试。从理论上讲,它们可以被“外部”世界访问(-> 不是 ViewModel 本身),因此值得测试,但是我应该如何测试(在我看来)不值得公共访问器的私有变量的更改(为了它存在的低级目的)?

提前致谢!

0 投票
2 回答
972 浏览

unity-container - 使用 WPF 的 Prism 中的 Unity

在 Prism 中,我们是否可以在模块级别拥有另一个统一实例来注册特定模块中的类。这样我就不会在不同模块中加载具有如此多类的应用程序级别统一。

0 投票
7 回答
12070 浏览

.net - Prism中如何控制模块初始化的顺序

我将 Prism V2 与 DirectoryModuleCatalog 一起使用,我需要按特定顺序初始化模块。所需的顺序由每个 IModule 实现上的属性指定。

这样一来,在初始化每个模块时,它们会将其视图添加到 TabControl 区域中,并且选项卡的顺序需要确定并由模块作者控制。

该顺序并不意味着依赖关系,而只是它们应该被初始化的顺序。换句话说:模块 A、B 和 C 的优先级可能分别为 1、2 和 3。B 不依赖于 A - 它只需要在 A之后加载到 TabControl 区域。这样我们就有了一个确定性和可控的选项卡顺序。此外,B 在运行时可能不存在;因此它们将加载为 A、C,因为优先级应确定顺序 (1, 3)。如果我使用了 ModuleDependency,那么模块“C”将无法加载它的所有依赖项。

我可以管理如何对模块进行排序的逻辑,但我不知道将所述逻辑放在哪里。

0 投票
10 回答
23594 浏览

silverlight-3.0 - 将多选列表框中的 SelectedItems 与 ViewModel 中的集合同步

我在使用 prism 的 SL3 应用程序中有一个多选列表框,并且我的视图模型中需要一个集合,其中包含列表框中当前选定的项目。

viewmodel 对视图一无所知,因此它无权访问列表框控件。此外,我需要能够从视图模型中清除列表框中的选定项目。

不知道如何解决这个问题

谢谢迈克尔