zoukankan      html  css  js  c++  java
  • WPF框架之MVVM系列(一)

    (一)定义:MVVM(Model-View-ViewModel)是在MVC(Model-View-Control)模式之后引出的新的开发模式,他与MVC模式一样用于把视图(界面)和数据进行解耦,不同的是采用ViewModel来完成数据与视图的双向绑定,通过自动化的方式承担大部分数据工作,来解决由于界面复杂化和快速迭代带来的问题。它的技术模型如下图所示

    暴风截图201792758096098

    (二)MVVM技术框架
    根据MVVM模型框架定义的逻辑体系, MVVM技术框架提供视图模型(ViewModel)、数据模型(Model、Collection)和服务(Service)四个组件来构建开发者的MVVM开发体系。
       MVVM.Service
    Service主要负责与后端服务器进行通讯的处理。
       MVVM.Model
    Model就是系统中的业务实体,是对现实中事物的抽象,开发过程中涉及到的事物都可以抽象为Model,例如客户实体中含有客户的姓名、编号、电话、住址等属性也对应了实体类中的Property,客户的下订单、付款等行为对应了实体中的方法。
       MVVM.Collection
    Collection 是用来维护一个 Model的集合,它主要用于维护的是一个可以增加、删除、排序筛选的数据列表。例如订单列表、商品列表等。这些数据列表都不会在一次访问中加载完成,用户需要进行翻页等操作,这些操作触发数据更新并附加或更新到 Collection 中。Model 中的数组主要用于维护一个对象的一些不经常变化的列表属性,例如衣服对象的尺码列表、一个电脑的硬盘大小选项等,这些属性经常不需要动态添加,而是直接一次获取和展现。
       MVVM.ViewModel
    ViewModel是Model、Collection与XAML(View)的中间处理机,他首要完成数据到界面、界面到数据的自动化操作。同时也是用户交互行为事件的处理中心。我们通过代码来了解MVVM对象的使用方式
       MVVM.View
    View是系统界面展示,在WPF中即为XAML页面。

    (三)INotifyPropertyChanged实现原理

    3.1  类层次图
    image

    3.2  应用场景举例
    项目用到DataGridView,用它绑定数据源后,如果数据源中的数据修改无法及时刷新到控件上,必须切换单元格的焦点才能导致刷新显示新数值,用INotifyPropertyChanged解决此问题。

    12333

    代码分析

    3.3  案例分析
    image

    关于public event PropertyChangedEventHandler PropertyChanged在子类实现的三种方式

    (1) 在构造中实现
    (2) 无参匿名委托
    (3) 有参匿名委托

    (四)Microsoft.Practices.Prism.dll>>Microsoft.Practices.Prism.Commands>>DelegateCommand类原理分析

    DelegateCommand源码
    DelegateCommand《T》源码





    参考资料:

    http://www.cnblogs.com/guofeiji/p/5277834.html

  • 相关阅读:
    闭包
    递归 斐波那契
    作用域,函数的四种调用模式
    数组方法
    Math内置对象
    BeanUtils.copyProperties() 用法
    ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("Id",getId())防止内存泄漏
    Spring配置文件applicationContext.xml Hibernate SQL方言 (hibernate.dialect)
    Redis面试总结
    Nginx面试题
  • 原文地址:https://www.cnblogs.com/lihuali/p/7591613.html
Copyright © 2011-2022 走看看