首先什么是MVVM,MVVM解决了什么问题。MVVM是Model、View和链接二者的ViewModel组成,Model负责提供数据的业务逻辑,View负责页面的显示,ViewModel链接View和Model,ViewModel经过调用Model得到页面所须要的数据并经过View中的绑定将数据显示到页面上。数据库
如何作到页面与逻辑分离的呢,理想状态下,View层的Code-Behind文件中只有在构造函数中调用初始UI元素的一行代码及设置View层的DataContext为对应的ViewModel。这样美工可根据原始设计图去作相应的美化设计,设计好直接替换便可。固然了还有一个好处就是能够方便的进行单元测试。
一个完整的三层效果以下:
View层(数据和事件都经过绑定实现):框架
项目结构以及最终效果(DataAccess模拟测试所须要的数据,实际项目通常是数据库):
函数
至此所有完成,只是我的的一些总结,对本身是一个记录,同时但愿也能对别人有些帮助,若是有什么错误,还望不吝指出,共同进步,转载请保留原文地址。
单元测试
源码下载测试