学习了一番WPF MVVM,记录一下,微软的连接(https://msdn.microsoft.com/zh-cn/magazine/dd419663.aspx

1.mvvm就是model,view,viewmodel三个,view和viewmodel是核心(个人理解哈),目的就是让他俩别抱得太紧,理解mvvm时,model基本可以弱化他的存储在

2.view和viewmodel是双向绑定的,viewmodel作为view的绑定源,view中只有xmal代码,viewmodel中有两部分,第一部分是ui交互的代码(一个view所有的ui交互的非xmal代码全在这里了),第二部分是业务逻辑代码(比如一个button按钮具体要调用哪个业务接口啥啥的)

3.用户的每一种操作都会定义对应的ICommand命令,ICommand命令在view中声明(就是按xmal语法绑定到对应的按钮之类的元素上),在viewmodel中定义和实现。

4.viewmodel会实现INotifyPropertyChanged接口,目的是达到viewmodel中的值变化时,view中对应的值随之更新。

5.viewmodel的封装,里面最好只包含和view交互的代码以及业务逻辑接口的调用,因为稍微复杂一点的界面和view交互的代码会有很多很多,如果把部分business的代码也写在这里,类会很大,维护也很麻烦,如果重新构建一个面目全非的ui,ui交互变化大,但是业务逻辑无变化,你就死定了。

最新文章

  1. Atitit 图像处理类库大总结attilax qc20
  2. Curator Cache
  3. 创建两个对象的两种方法,一中\new,另外一种不new
  4. Assetbundle的杂七杂八
  5. [转]对Android开发者有益的40条优化建议
  6. 值得关注的 10 个 Python 英文博客
  7. 多台服务之间共享Session
  8. MySQL查看索引、表信息、触发器
  9. 增强 Sublimetext3
  10. Java异常(输出[D@139a55问题)
  11. Tomcat学习笔记(二)—— 一个简单的Servlet容器
  12. Matlab to OpenCV Mat
  13. ES 在聚合结果中进行过滤
  14. C语言扫盲及深化学习
  15. [c++] opencv加载png
  16. java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie解决方法
  17. loadrunner11中文版破解文档+录制脚本(图/文)
  18. shell中的循环语法
  19. Java SE之初探反射机制
  20. Python实现邮件的批量发送

热门文章

  1. linux网络编程学习笔记之二 -----错误异常处理和各种碎碎(更新中)
  2. 关于用WebView或手机浏览器打开连接问题
  3. HDU2473 Junk-Mail Filter - 并查集删除操作(虚父节点)
  4. VC++中用API调用对话框资源
  5. 囚徒困境、价格大战与 iPhone 的价格
  6. 使用jsp,tomcat实现用户登录注册留言的代码
  7. radio实现第一次点击选中第二次点击取消
  8. leetcode——Reverse Words in a String 旋转字符串中单词顺序(AC)
  9. LeetCode总结 -- 树结构的一部分
  10. 基于Web实现在线绘画拓扑图[GraphEditor]