WPF之ViewModel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中的命令上。

 

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

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

以上是关于WPF之ViewModel的主要内容,如果未能解决你的问题,请参考以下文章

WPF 在 MVVM 模式下实现窗口后台代码与ViewModel交互

WPF 绑定 tp ViewModel

如何通过 viewModels 获取 viewModel? (片段-ktx)

WPF 事件绑定到 ViewModel(对于非命令类)

WPF 将 UI 事件绑定到 ViewModel 中的命令

从 View 到 ViewModel 的 WPF 事件绑定?