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