我最近启动了Windows Phone 8开发.
我对MVVM的理解,
M =模型意味着数据,具体是什么意思是模型应该被视为C语言的结构.它只有属性或成员变量(对象).它对View和View Model一无所知.
V =普通XAML.应该只有一种绑定方式,即使用DataContext.
VM = View Model是视图的模型. VM使用M来保存其数据(使用容器),VM负责将数据保存在数据库中或从数据库中获取数据.数据库交互应该在VM中进行. VM应该实现INotifyPropertyChanged,因为它负责保存和获取数据.
请注意,我建议我对MVVM有错误的概念.
解决方法
大多数模式都希望将视图和模型分开,因此在MVVM中仍然是相同的,但更为模糊的是如何将数据转换/格式化以便显示给用户,以及如何将用户输入转换为模型.在许多MVC框架中,视图中模型数据的表示处理得很好,但是您通常可以自己进行用户输入并将数据转换回模型. MVVM旨在处理两者.
Microsoft选择使用DependencyProperty,ICommand和ValueConverters之类的东西来做到这一点.基本思想是您的View只会通过绑定松散地附加到viewmodel,因此理论上您可以将viewmodel重用于其他视图.这在另一个方向上是相同的(这种干净的双向绑定是使MVVM与MVC不同的原因),因为你的VM可以通知属性已经改变(这就是为什么你必须实现INotifyPropertyChanged),但VM有不知道视图是否有反应.当您想要重用这些组件时,这非常简单.
因此,了解MS尝试使用MVVM解决的问题,您可以更好地理解为什么像INotifyPropertyChanged这样的东西存在或者ICommand是什么,并希望充分利用MVVM模式.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。