Silverlight posted中有人认为MVVM目前缺乏标准化,所以每个人都有自己的风味..
这就是为什么我和WPF门徒的一些人正在积极讨论每个人都同意的MVVM的哪些元素。我完全理解我们已经以不同的方式实现了模式,我们根据项目的需要混合了几个模式或创建了自己的模式,或者让开发人员的生活变得更轻松......但是忘记了这些困难或项目的特殊需求。让我们讨论一下每个人都同意的MVVM模式的标准规则。我也发布了some of my thoughts here。
为何选择MVVM?
不在视图中
在ViewModel中执行和不执行
模型
你对此有任何建议或评论吗?
我们小组中有一个分歧。有人说在ViewModel中有View的界面是可以的。但是有人说如果View Model有View接口,那么它将是MVP模式。
我们的一位MVVM专家谈到了MVVM Vs MVP
查看=> ViewModel
ViewModel =>图
MVVM
MVP
在MVP案例中,标准是Presenter通过接口,数据绑定或在被动视图的情况下通过属性与视图对话。使用被动视图时,属性不使用数据绑定,而是使用视图属性getter和setter来直接设置控件值。
您如何看待这个想法?
你认为ViewModel有View的界面吗?
如果您想添加更多内容,欢迎您添加...:)
关于这篇文章的全部想法是对社区中的MVVM模式有相同的理解。
答案 0 :(得分:2)
我喜欢你写的东西。真正让我感到困惑的一件事是,很多人似乎都将他们的VM与他们的视图非常紧密地联系在一起 - 如果你这样做,那么你可能只是做旧的 XAML +一切都被打入了之后的代码。
我使用的模式是MVVM上的一个小变体(但它大致相同)。就个人而言,我喜欢将ViewModel作为接口提供给View - 它使分离非常干净。这在做原型时有很多好处,视觉元素可以在视图中切换或切换出来,对ViewModel影响很小或没有影响。
答案 1 :(得分:0)
我认为View ViewModel通过数据绑定之间的通信使MVVM成为自己的模式而不是其他关注点分离。对于vm来说,通过接口了解视图是否为GOOD或BAD并非如此,但在传达正在使用的模式的上下文中,它不是MVVM。
遗憾的是,获得和维护标准的一些困难在于WPF和Silverlight的缺点和复杂性。但是,当有多个有效标准时,我会戴上我的Martin Fowler帽子并添加“何时使用它”部分。
您的标准是否涵盖了本地化等跨领域问题?
FWIW我喜欢你写的内容,很高兴你在这里发布了......
干杯,
Berryl