silverlight - Model-View-ViewModel (MVVM) 模式的优势值得付出代价吗?

标签 silverlight mvvm

问题在主题中陈述:模型- View - View 模型(MVVM)模式的优势是否值得开销?

在许多情况下,实现 View 模型涉及复制模型属性的相当大的开销,有时还涉及模型和 View 模型数据成员之间的同步。例如,目前在 Silverlight 4 和 WCF RIA 中,不生成 View 模型(如果开发人员遵循 MVVM 模式,则由他来创建 View 模型,通常在 ViewModel 中复制相应模型的属性,这没什么意义,但将模型称为存储)。

为什么不扩展 Model 类,提供额外的属性使其易于被 View 使用呢?

最佳答案

Why not extending the Model class, providing additional properties to make it easy to be consumed by the View instead?



实际上,这就是 PresentationModel是为了。 MVVM 强烈基于哪个。不同之处在于 ViewModel 是 View 的模型,而不是数据的模型。因此,您更关心 View 如何处理数据。

如果您有一个简单的 UI,它所做的只是呈现模型,那么我建议在 ViewModel 的属性上公开模型并绑定(bind)到该属性。确保模型确实实现了 INotifyPropertyChanged等等

ViewModel 的强大之处在于您有事情要做以响应用户操作。然后 ViewModel 可以支持命令,调用服务和验证,从而将模型作为数据容器

关于silverlight - Model-View-ViewModel (MVVM) 模式的优势值得付出代价吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629273/

相关文章:

asp.net - Silverlight InitParams 提示在 Mozilla 和 Chrome 中安装 Silverlight

c# - UIElementCollection 和 Collection<UIElement> 之间的区别?

c# - 使用 Silverlight 的 Windows 应用程序

silverlight - 如何防止全景图在 Windows Phone 7 应用程序中从最后一项滚动到第一项

c# - 最奇怪的组合框异常 : GeneratorPosition '-1,1' "passed to Remove does not have Offset equal to 0". 参数名称:位置

mvvm - 我的用户控件和 ViewModel 之间的绑定(bind)

wpf - 将按钮单击事件上的WPF上下文菜单更改为MVVM

WPF MVVM : View is not reloaded when ViewModel is changed

php - 有没有办法在我的 PHP MVVM 设计中使用 jQuery?

mvvm - 用于模块化 MVVM 应用程序的 Prism + MEF 替代方案