wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了wpf – MVVM概念中的混乱大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图在过去两周内理解MVVM,但仍然有很多困惑理解它. 我最近启动了Windows Phone 8开发. 我对MVVM的理解, M =模型意味着数据,具体是什么意思是模型应该被视为C语言的结构.它只有属性或成员变量(对象).它对View和View Model一无所知. V =普通XAMl.应该只有一种绑定方式,即使用DataContext. VM = View Model是视图的模型. VM使用
我试图在过去两周内理解MVVM,但仍然有很多困惑理解它.

我最近启动了Windows Phone 8开发.

我对MVVM的理解,

@H_419_19@m =模型意味着数据,具体是什么意思是模型应该被视为C语言的结构.它只有属性或成员变量(对象).它对View和View Model一无所知.

V =普通XAMl.应该只有一种绑定方式,即使用DataContext.

VM = View Model是视图的模型. VM使用M来保存其数据(使用容器),VM负责将数据保存在数据库中或从数据库获取数据.数据库交互应该在VM中进行. VM应该实现INotifyPropertyChanged,因为它负责保存和获取数据.

请注意,我建议我对MVVM有错误的概念.

解决方法

您所说的一切在技术上都是正确的,但我会尝试以更抽象的方式处理设计模式,并虑它试图解决的问题. MVVM正试图解决在视图和模型之间提供分离以及提供双向绑定(即从模型中提取数据并呈现数据,以及获取用户输入并将其保存回模型)的问题.

大多数模式都希望将视图和模型分开,因此在MVVM中仍然是相同的,但更为模糊的是如何将数据转换/格式化以便显示用户,以及如何将用户输入转换为模型.在许多MVC框架中,视图中模型数据的表示处理得很好,但是您通常可以自己进行用户输入并将数据转换回模型. MVVM旨在处理两者.

@H_419_19@microsoft选择使用DependencyProperty,ICommand和ValueConverters之类的东西来做到这一点.基本思想是您的View只会通过绑定松散地附加到viewmodel,因此理论上您可以将viewmodel重用于其他视图.这在另一个方向上是相同的(这种干净的双向绑定是使MVVM与MVC不同的原因),因为你的VM可以通知属性已经改变(这就是为什么你必须实现INotifyPropertyChanged),但VM有不知道视图是否有反应.当您想要重用这些组件时,这非常简单.

因此,了解MS尝试使用MVVM解决的问题,您可以更好地理解为什么像INotifyPropertyChanged这样的东西存在或者ICommand是什么,并希望充分利用MVVM模式.

大佬总结

以上是大佬教程为你收集整理的wpf – MVVM概念中的混乱全部内容,希望文章能够帮你解决wpf – MVVM概念中的混乱所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。