1

我现在使用 WPF 已经有一段时间了。我使用的平台是 MVVM Light。我必须说我没有在代码隐藏文件中添加一行代码。

最近我深入研究了 Prism,我看到了很多例子,其中代码隐藏(例如数据上下文或属性更改事件)是理所当然的事情。

Prism 是否被视为纯 mvvm 平台?

虽然这个IoC的实现还是打破了mvvm的规则:

[Import]
public MainViewModel ViewModel
{
    set { DataContext = value; }
}
4

3 回答 3

1

不,Prism 是一个复合应用程序平台(如果平台是正确的名称,可能更好)。

您想使用 MVVM 的事实与 Prism 本身无关。您可以一起使用 MVVM 和 Prism。

于 2013-03-06T12:31:42.477 回答
1

Prism 是一个基于 Microsoft 推荐的实践构建复杂、复合应用程序的框架。MVVM 是一种实践,另一种是应用程序的模块化。这就是为什么你可以看到一个使用 Prism 但不遵循 MVVM 的应用程序 - 它只是具有模块化结构并使用 Prism 来延迟模块下载、声明性模块等。

但是 Prism 本身就是优秀的 MVVM 框架。它提供了基本 MVVM 模式的实现:

  • 基本视图模型 - NotifyProertyChangesBase
  • 命令 - 委托命令
  • 视图模型之间的通知(用于复合应用程序) - EventAggregator
  • 可用于视图模型级别的用户通知的抽象 - 通知
  • 尊重视图模型单元测试的 DI 原则
  • 将视图模型映射到视图的扩展能力 - 区域

Prism 作为 MVVM 框架对于小型应用程序来说很重,但它非常强大且可扩展,我看到了使用 Prism 创建的良好的复合 MVVM 设计应用程序。

于 2013-03-06T16:53:51.680 回答
0

Prism是一个促进者MVVM,而不是一个平台。遵循MVVM. 我怀疑有许多 Prism 应用程序不遵循MVVM. 我什至做过一个。

于 2013-03-06T13:27:20.577 回答