我现在使用 WPF 已经有一段时间了。我使用的平台是 MVVM Light。我必须说我没有在代码隐藏文件中添加一行代码。
最近我深入研究了 Prism,我看到了很多例子,其中代码隐藏(例如数据上下文或属性更改事件)是理所当然的事情。
Prism 是否被视为纯 mvvm 平台?
虽然这个IoC的实现还是打破了mvvm的规则:
[Import]
public MainViewModel ViewModel
{
set { DataContext = value; }
}
不,Prism 是一个复合应用程序平台(如果平台是正确的名称,可能库更好)。
您想使用 MVVM 的事实与 Prism 本身无关。您可以一起使用 MVVM 和 Prism。
Prism 是一个基于 Microsoft 推荐的实践构建复杂、复合应用程序的框架。MVVM 是一种实践,另一种是应用程序的模块化。这就是为什么你可以看到一个使用 Prism 但不遵循 MVVM 的应用程序 - 它只是具有模块化结构并使用 Prism 来延迟模块下载、声明性模块等。
但是 Prism 本身就是优秀的 MVVM 框架。它提供了基本 MVVM 模式的实现:
Prism 作为 MVVM 框架对于小型应用程序来说很重,但它非常强大且可扩展,我看到了使用 Prism 创建的良好的复合 MVVM 设计应用程序。
Prism
是一个促进者MVVM
,而不是一个平台。遵循MVVM
. 我怀疑有许多 Prism 应用程序不遵循MVVM
. 我什至做过一个。