问题标签 [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 回答
4290 浏览

silverlight - Silverlight 3 Beta,ViewModel 中的 NavigationService

我正在开发一个 silverlight 3 beta 导航应用程序,所以我对 MVVM 模式进行了一些细微的改动:)(多合一视图模型),使用棱镜和其他东西。

问题:如何在视图模型中导航到不同的“NavigationPage”

现在长话短说,视图模型被声明为页面资源。

然后使用命令将所有内容与视图模型连接起来

现在,如果我尝试像这样在视图模型中的任何位置导航

Navigationservice 是空的,我环顾四周发现了这篇文章,它描述了使用 helix 0.3 进行导航,这是在 sl2 天构建的,当时导航控件不存在,现在 helix 的模型运行良好,并通过在中实现 INavigationAware视图模型,您可以访问 NavigationContext,然后执行您需要的任何操作,我尝试过 helix,它可以工作。

SL3 带有内置的导航支持,可以这么说,这正是 helix 所做的。所以我不想使用 3rd 方框架,而是更喜欢使用内置的 sl3 功能。

SL3 中是否有任何东西可以模拟 helix 的 INavigationAware 接口?

0 投票
2 回答
761 浏览

wpf - 组织多个复合 WPF 应用程序以共享单个外壳

如何组织多个 Composite WPF 应用程序,以便它们共享一个 Shell 项目,但从不同的 App.config 文件填充它们的模块目录?

我正在使用 WPF 的复合应用程序指南编写一套应用程序。每个应用程序的功能取决于不同模块的可用性,这些模块在 Shell 的 App.config 中列出。通过给每个应用程序一个不同的 App.config,我可以指定每个应用程序可以使用哪些模块。

但是,我想在所有应用程序之间共享一个 Shell 项目,以获得共同的外观和感觉。最初,我为每个应用程序创建了一个解决方案,添加了 Shell 项目,然后添加了相关模块。问题是常见的 Shell 项目只有一个 App.config 文件,我不能在每个解决方案的基础上更改它。

通过代码填充目录并不能避免这个问题——Shell 中仍然会有特定于应用程序的代码,必须以某种方式由我正在使用的解决方案激活。

0 投票
2 回答
1437 浏览

silverlight - silverlight 通过棱镜命令,获取事件的事件参数?

我在 SL3 中有一个数据表单,它使用带有附加行为的 Prisms 命令来捕获事件。

(它非常紧跟这篇博文:http: //blogs.southworks.net/dschenkelman/2009/04/18/commands-with-attached-behavior-for-silverlight-3-dataform/#comment-607

基本上,一切都已连接并且工作正常,但是在视图模型中,我看不到如何访问事件的事件参数。

在 VM 的构造函数中,我定义了委托命令:

但是我需要访问 DataFormItemEditEndedEventArgs 属性才能定义需要做什么?我想根据用户是否取消或提交来执行不同的操作。

0 投票
1 回答
663 浏览

.net - 多文档应用程序的 MVVM 设计?

我有一个与 Visual Studio 具有相似界面的应用程序,其中有一个可以打开、编辑和保存的文档列表。每个文档可以是不同的类型并具有不同的编辑器。

我也有一个通用的 Save MenuItem。我想要做的是让 Save 命令只保存活动文档。是否有使用 MVVM 将文档 VM 连接到 Save 的标准模式MenuItem

0 投票
1 回答
281 浏览

wpf - 测试复合 WPF 应用程序

如何测试复合 WPF 应用程序?

我正在查看 Composite Application Library 和 Stock Trader 参考实现以获取示例,但我不明白他们的测试是如何组织的。

我有几个模块被编译为 DLL 并由我的主 shell 引用。我需要做什么来测试各个模块?一切都可以通过单元测试来完成吗?我需要提供一个模拟外壳吗?

0 投票
4 回答
979 浏览

silverlight-2.0 - Web 服务调用返回时加载动画冻结

我有一个 Silverlight 2 应用程序,其中包含一个包含动画的“正在加载数据...”消息。当 Web 服务返回数据并且数据正在加载到可观察的集合中时 - 动画会冻结(这可能会在数据加载时持续几秒钟,并给人一种可能有问题的印象。)

数据绑定到视图中项目控件的可观察集合。

我假设正在发生的事情是当数据被添加到可观察集合时,正在为数据绑定控件构建可视化树 - 这发生在 UI 线程上。

无论如何,我是否可以降低数据加载的优先级,以便 ui 线程上的动画可以继续 - 即使 UI 线程上正在完成大量数据工作?

谢谢迈克尔

0 投票
2 回答
2853 浏览

wpf - Prism (CAL) 中的模块如何相互通信?

我有一个 WPF 应用程序,它始终使用 MVVM 模式,没有代码隐藏,ViewModels 通过 MainViewModel 相互通信,MainViewModel 被注入到它们中。

最终,这个应用程序需要合并到一个使用复合应用程序库、Unity 等的应用程序中。通过查看 CAL 的代码和文档,我可以看到如何将我的整个应用程序注册为 CAL 应用程序中的一个模块,但是如何我的应用程序模块是否会与其他动态加载的模块进行通信?我期待,例如每个模块都会以某种方式注入 CAL 应用程序,或者有某种事件控制器信使我可以与其他模块松散地通信,即可以发送消息并响应事件但不用担心这些模块是否真的存在。

复合应用程序模块如何相互通信?

0 投票
3 回答
1044 浏览

c# - 与 MVVM 的用户界面交互

我做了一些谷歌搜索,但没有找到这个难题的答案。

前提是您具备以下条件:

  • 我的超级视图
  • 我的超级视图模型

MySuperView 有两个文本框,它们都绑定到 ViewModel 上的字符串属性,并且您使用 DelegateCommand 使用以下语法将“保存”按钮绑定到 ViewModel:

视图模型:

看法:

您如何处理 UI 元素以使用户交互更令人愉悦。例如,假设在 DelegateCommand 的保存操作期间发生了一些较低级别的故障,并且您想触发其中一个文本框的工具提示。这通常会如何发生?

我想尽可能地坚持使用干净的代码隐藏,但我并不反对将 UI 特定的代码放在那里。

0 投票
1 回答
796 浏览

silverlight-3.0 - Silverlight 3/PRISM 中的帧区域适配器和 RegionContext

我正在尝试使用新的 Silverlight 3 深度链接功能来尝试“从外部”驱动基于 PRISM 的应用程序,即通过使用浏览器 url。该 url 将用作了解要加载哪个 PRISM 模块的提示。

因此,我在 SL3 框架内托管了一个区域,该区域由我构建的自定义区域适配器进行了调整。我想在该框架内显示的所有视图都提供了一个 NavigationUri,因此当我向该区域添加视图并激活它时,区域适配器是智能的并从框架开始导航。这些视图是“无视的”,因为它们并没有真正显示在该区域中,而是作为应该显示什么视图的提示。

我还有一个带有参数的页面(类似于 this),该页面将托管在框架内。通过使用我在上一步中传递的参数,该页面知道要显示哪个实际视图。

问题是,我如何将上下文信息传递到这个包罗万象的页面?潜在地,我需要获取在第二步中触发导航的模型对象,并访问在容器中注册的服务,以便我可以执行一些视图注入和其他依赖注入魔术。

我知道它可能有点太复杂了,我们将不胜感激。

0 投票
3 回答
780 浏览

silverlight-2.0 - 使用 Prism 对 StackPanel 进行数据绑定

使用 Prism,我实现了与 StockTraderRI 项目非常相似的 View、Model 和 Presenter。我的问题是我正在尝试将堆栈面板数据绑定到 ObservableCollection 对象,但没有显示任何字符串。

这是我的代码:

演示模型代码:

XAML 代码:

我尝试了多种绑定组合,但还没有弄清楚为什么我的字符串从未出现过。我究竟做错了什么?

瑞克