zoukankan      html  css  js  c++  java
  • WPF之ViewModel

       写之前我先唠叨两句,现在公司要求用wpf写个客户端,我之前玩过winform,没怎么用wpf写过正经项目,我接手这个wpf项目之后就开始研究这个东西,MVVM,自定义控件,等等。可能是winfrom先入为主的思想,导致了我以为wpf可以按照winfrom的模式来开发,viewmodel,不就是提供数据的吗,可是在我仔细研究之后我发现,mvvm模式开发wpf简直是神器。好了,废话不多说了,下面开始今天的正题。

    1. 初识wpf的mvvm模式  
      • model:实体对象(不做过多的解释。)
      • View:视图,在wpf中的ui布局。
      • ViewModel:视图模型。
    2. mvvm的好处
      • 降低view 层与model层的耦合。
      • viewmodel中可以绑定事件。(我刚开始接触wpf的时候,把事件写到视图的.cs文件中,现在想想真是。。。)
      • /// <summary>
                /// 命令
                /// </summary>
                public ICommand LoadCommand { get; set; }
                public LogoViewModel()
                {
                    LoadCommand = new RelayCommand(Click);
        
                }
        
                private void Click()
                {
                    MessageBox.Show("这是弹出框事件");
                }
      • 双向绑定(数据发生变化后自动通知model该数据发生了变化) 下图的方法用来监听数据是否发生变化,发生变化后会通知用到该数据的地方让他们自己修改。
    3. mvvm要做什么。
      • 大白话说,MVVM框架,要做的最基本的事情就是数据绑定和命令绑定。因为页面UI中会产生大量的事件,因此还需要将事件绑定到MVVM中的命令上。

    今天就写到这里,如果小弟写的有什么问题,欢迎各位大牛多多指正。

    待续未完。。。  明天会持续更新。

  • 相关阅读:
    6389. 【NOIP2019模拟2019.10.26】小w学图论
    6383. 【NOIP2019模拟2019.10.07】果实摘取
    三分查找求极值
    51Nod 1278 相离的圆
    51 Nod 1092 回文字符串
    关于原根(来自百度百科)
    Hdu 1358 Period
    最大子矩阵和
    51 Nod 1072 威佐夫游戏
    The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online(2018 青岛网络预选赛)
  • 原文地址:https://www.cnblogs.com/f-z-h/p/7270171.html
Copyright © 2011-2022 走看看