• 1.NuGet引用MVVM框架包

    • 引入该框架包之后, 默认会在目录下创建ViewModel层的示例代码
  • 2.第二步, 通过在MainViewModel中创建一些业务代码, 将其与MainWindow.xaml 通过上下文的方式关联起来, 而MainWindow则是通过Binding的写法 引用业务逻辑的部分。
    • 在MainViewModel中, 添加同一个班级名称, 与学生列表, 分别用于显示在文本 和列表上展示, Command则用于绑定DataGrid的双击命令上, 通过双击, 展示点击行的学生信息:

MainViewModel 继承了 ViewModelBase, 该继承的父类实在MVVM框架中, 实现双向通知的基类, 通过引用该类, 那么其之类的属性则可通过 添加 RaisePropertyChanged() 即可。
- 为MainViewModel添加一些模拟数据

  -  设计UI层, 添加一个文本用于显示班级名称,  添加一个DataGrid 用于展示学生列表,  同时DataGrid中添加一个绑定的命令(红色区域)

关于上面红色圈的代码, 为一种绑定语法, 主要在MouseBinding中, MouseAction 以为触发的事件类型, CommandParameter 则是命令传递的参数, 也就是DataGrid选中的一行的类型 Student。
Command 则是MainViewModel中定义的Command
- 现在, 前端的绑定工作已经设置好, 后台的代码也添加完成, 目前只需要将MainViewModel 与MainWindow 通过MainWindow的DataContext关联即可

运行效果如下:

RaisePropertyChanged() 实现动态通知更新

+ 通过set访问器更新ClassName的同时, 调用RaisePropertyChanged 方法, 界面刷新更新后的值

+ 添加一个无参数的UpdateCommand , 并设置为 UpdateText 手动把ClassName更新为 "高三三班":

+ UI层添加一个简单按钮, 绑定后台的UpdateCommand命令

运行测试效果:

最新文章

  1. CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
  2. python中mysqldb的用法
  3. 在虚拟机中安装CentOS7
  4. IE6/7/8中parseInt第一个参数为非法八进制字符串且第二个参数不传时返回值为0
  5. offsetHeight 正则表达式验证格式
  6. 安装小企鹅fcitx输入法
  7. Java Day 08
  8. ubuntu 终端只显示当前目录名称
  9. Spring IOC 之个性化定制the nature of a bean
  10. 自定义事件解决重复请求BUG
  11. CollectionUtils工具类的常用方法
  12. ansible的lookup
  13. Servlet-session简介及使用场景
  14. 奇怪吸引子---Qi
  15. HDU-2874-森林求LCA/tarjan
  16. 一些网站的meta标签的作用
  17. OAF 通过个性化 在标准事件上添加验证
  18. Node.js中module文件定义的top-level变量为何是私有的
  19. Java NIO之拥抱Path和Files
  20. win10下Visual Studio 2015,C++ x64编译zlib

热门文章

  1. LeetCode-1765 地图中的最高点
  2. getUserInfo和getUserProfile被废弃
  3. lg8365题解
  4. dfs-入门模板
  5. Mac Parallels Desktop篇 安装Windows 10
  6. JMeter压力测试之环境搭建、脚本调试及报错解决方法(Linux版)
  7. JavaSE——构造方法
  8. 通过java代码向mysql数据库插入记录,中文乱码处理
  9. Burp学院-信息泄露
  10. pure-ftpd