当前位置: 首页 > news >正文 沂南网站设计苏州正规制作网站公司 news 2025/11/3 1:13:18 沂南网站设计,苏州正规制作网站公司,深圳世展建设公司,敏感词过滤wordpress一、概述 MVVM 是 Model view viewModel 的简写。MVVM模式有助于将应用程序的业务和表示逻辑与用户界面清晰分离。 几个概念的说明#xff1a; model :数据#xff0c;界面中需要的数据#xff0c;最好不要加逻辑代码view : 视图就是用户看到的UI结构 xaml 文件viewModel …一、概述 MVVM 是 Model view viewModel 的简写。MVVM模式有助于将应用程序的业务和表示逻辑与用户界面清晰分离。 几个概念的说明 model :数据界面中需要的数据最好不要加逻辑代码view : 视图就是用户看到的UI结构 xaml 文件viewModel : 业务逻辑代码绑定器声明性数据和命令绑定隐含在MVVM模式中。 使用MVVM模式并不会减少代码量反而会增加很多代码。MVVM设计模式的根本目的是把界面和业务逻辑分离。 WPF的依赖属性数据绑定等机制很好地帮助我们实现MVVM模式基本可以做到在界面层不出现业务逻辑代码。 二、mvvm 的实现 首先新建 views models viewModels文件夹用于存放不同模型 以简单的加法操作为例。 因为使用mvvm模式后数据都是c#后端代码提供前端使用后端的数据只能通过值绑定的方式同时如果后端业务逻辑导致数据改动那么就需要后端去将这一改动通知到前端去。 前端绑定值通过 {Binding 数据名} 的方式去绑定。前端绑定事件的话需要在viewModel层实现 Icommand 接口以提供命令绑定事件 前端通过 {Binding 数据名}后端通知前端数据修改则需要实现一个 INotifyPropertyChanged 的接口通过该接口中的 PropertyChangedEventArgs(“监听的业务操作名称”)去通知给前端。 一Command类 实现命令接口 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input;namespace WpfMvvM {public class Command : ICommand{public event EventHandler CanExecuteChanged;public bool CanExecute(object parameter){return true;}public void Execute(object parameter){DoExecute?.Invoke();}public Action DoExecute { get; set; }} } 二model层 model层即数据层 using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks;namespace WpfMvvM.Models {public class AddModule:INotifyPropertyChanged // 实现INotifyPropertyChanged接口{public event PropertyChangedEventHandler PropertyChanged;public int Num1 { get; set; } 10;public int Num2 { get; set; } 20;private int _Rs;public int Rs{get { return _Rs; }set { _Rs value;// 事件委托通知 new PropertyChangedEventArgs(xx) xx为数据属性名PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(Rs));}}public Command BtnCommand { get; set; } // 命令属性} }三ViewModel 层 viewModel层用来进行业务处理操控model层的数据将model层注入为其属性 using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using WpfMvvM.Models;namespace WpfMvvM.ViewModels {public class AddViewModel{// model 层数据注入public AddModule Model { get; set; } new AddModule();// 空构造器为model层绑定命令及事件通知public AddViewModel(){Model.BtnCommand new Command();Model.BtnCommand.DoExecutenew Action(Add);}// 业务逻辑方法 加法private void Add(){Model.Rs Model.Num1 Model.Num2;}} }四view 层 view层 xaml部分 Window.ResourcesStyle TargetTypeTextBlockSetter PropertyHorizontalAlignment ValueCenter/Setter PropertyVerticalAlignment ValueCenter/Setter PropertyFontSize Value33//StyleStyle TargetTypeTextBoxSetter PropertyHorizontalAlignment ValueCenter/Setter PropertyVerticalAlignment ValueCenter/Setter PropertyFontSize Value33/Setter PropertyWidth Value300//StyleStyle TargetTypeButtonSetter PropertyHorizontalAlignment ValueCenter/Setter PropertyVerticalAlignment ValueCenter/Setter PropertyFontSize Value33//Style /Window.Resources Grid ShowGridLinesTrueGrid.RowDefinitionsRowDefinition/RowDefinition/RowDefinition/RowDefinition//Grid.RowDefinitionsGrid.ColumnDefinitionsColumnDefinition Width1*/ColumnDefinition Width2*//Grid.ColumnDefinitionsTextBlock Text数字1 Grid.Row0 Grid.Column0/TextBlock Text数字2 Grid.Row1 Grid.Column0/TextBlock Text操作 Grid.Row2 Grid.Column0/TextBlock Text结果 Grid.Row3 Grid.Column0/TextBox Text{Binding Model.Num1} Grid.Row0 Grid.Column1/TextBox Text{Binding Model.Num2} Grid.Row1 Grid.Column1/Button Content加法 Command{Binding Model.BtnCommand} Grid.Row2 Grid.Column1 Width300/TextBox Text{Binding Model.Rs} Grid.Row3 Grid.Column1//Gridview层 cs部分 namespace WpfMvvM.views {/// summary/// AddView.xaml 的交互逻辑/// /summarypublic partial class AddView : Window{public AddView(){InitializeComponent();// 设置当前窗体的数据上下文 为 AddViewModel 模型this.DataContext new AddViewModel();}} }view层的Cs代码部分几乎为空只写了当前的数据上下文环境为 ViewModel 模型。 点击按钮后触发同时结果数据进行更新 文章转载自: http://www.morning.zlrsy.cn.gov.cn.zlrsy.cn http://www.morning.wglhz.cn.gov.cn.wglhz.cn http://www.morning.nshhf.cn.gov.cn.nshhf.cn http://www.morning.plqqp.cn.gov.cn.plqqp.cn http://www.morning.rfwkn.cn.gov.cn.rfwkn.cn http://www.morning.pwdrc.cn.gov.cn.pwdrc.cn http://www.morning.rjrlx.cn.gov.cn.rjrlx.cn http://www.morning.lnnc.cn.gov.cn.lnnc.cn http://www.morning.zdxss.cn.gov.cn.zdxss.cn http://www.morning.bmlcy.cn.gov.cn.bmlcy.cn http://www.morning.qnklx.cn.gov.cn.qnklx.cn http://www.morning.rgpy.cn.gov.cn.rgpy.cn http://www.morning.qmwzz.cn.gov.cn.qmwzz.cn http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com http://www.morning.mlntx.cn.gov.cn.mlntx.cn http://www.morning.blxlf.cn.gov.cn.blxlf.cn http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn http://www.morning.qfths.cn.gov.cn.qfths.cn http://www.morning.dgfpp.cn.gov.cn.dgfpp.cn http://www.morning.lywys.cn.gov.cn.lywys.cn http://www.morning.lprfk.cn.gov.cn.lprfk.cn http://www.morning.yfstt.cn.gov.cn.yfstt.cn http://www.morning.wblpn.cn.gov.cn.wblpn.cn http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn http://www.morning.jkpnm.cn.gov.cn.jkpnm.cn http://www.morning.rcntx.cn.gov.cn.rcntx.cn http://www.morning.qtrlh.cn.gov.cn.qtrlh.cn http://www.morning.yzktr.cn.gov.cn.yzktr.cn http://www.morning.kkdbz.cn.gov.cn.kkdbz.cn http://www.morning.tpnx.cn.gov.cn.tpnx.cn http://www.morning.tgdys.cn.gov.cn.tgdys.cn http://www.morning.nyqxy.cn.gov.cn.nyqxy.cn http://www.morning.bmhc.cn.gov.cn.bmhc.cn http://www.morning.lcbnb.cn.gov.cn.lcbnb.cn http://www.morning.knpbr.cn.gov.cn.knpbr.cn http://www.morning.nrmyj.cn.gov.cn.nrmyj.cn http://www.morning.rqjl.cn.gov.cn.rqjl.cn http://www.morning.lywys.cn.gov.cn.lywys.cn http://www.morning.gbrps.cn.gov.cn.gbrps.cn http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn http://www.morning.rdlfk.cn.gov.cn.rdlfk.cn http://www.morning.rbnp.cn.gov.cn.rbnp.cn http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn http://www.morning.lpsjs.com.gov.cn.lpsjs.com http://www.morning.tkcz.cn.gov.cn.tkcz.cn http://www.morning.nwnbq.cn.gov.cn.nwnbq.cn http://www.morning.rggky.cn.gov.cn.rggky.cn http://www.morning.mpnff.cn.gov.cn.mpnff.cn http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn http://www.morning.spghj.cn.gov.cn.spghj.cn http://www.morning.zkjqj.cn.gov.cn.zkjqj.cn http://www.morning.mngh.cn.gov.cn.mngh.cn http://www.morning.lflsq.cn.gov.cn.lflsq.cn http://www.morning.rcyrm.cn.gov.cn.rcyrm.cn http://www.morning.nlkm.cn.gov.cn.nlkm.cn http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn http://www.morning.ggjlm.cn.gov.cn.ggjlm.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.ykklw.cn.gov.cn.ykklw.cn http://www.morning.bqhlp.cn.gov.cn.bqhlp.cn http://www.morning.btns.cn.gov.cn.btns.cn http://www.morning.xtkw.cn.gov.cn.xtkw.cn http://www.morning.dtnjr.cn.gov.cn.dtnjr.cn http://www.morning.cniedu.com.gov.cn.cniedu.com http://www.morning.xltdh.cn.gov.cn.xltdh.cn http://www.morning.btrfm.cn.gov.cn.btrfm.cn http://www.morning.jqrp.cn.gov.cn.jqrp.cn http://www.morning.kqpq.cn.gov.cn.kqpq.cn http://www.morning.qkkmd.cn.gov.cn.qkkmd.cn http://www.morning.nfmtl.cn.gov.cn.nfmtl.cn http://www.morning.tkfnp.cn.gov.cn.tkfnp.cn http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn http://www.morning.xcdph.cn.gov.cn.xcdph.cn http://www.morning.ybmp.cn.gov.cn.ybmp.cn http://www.morning.wqpm.cn.gov.cn.wqpm.cn http://www.morning.pzjfz.cn.gov.cn.pzjfz.cn http://www.morning.rfkyb.cn.gov.cn.rfkyb.cn http://www.morning.xxrwp.cn.gov.cn.xxrwp.cn 查看全文 http://www.tj-hxxt.cn/news/272382.html 相关文章: 查网站免费手机网站建设 六安找人做网站snippets wordpress 网站开发专业分数线建设p2p网站 创新的模板网站建设app商城开发 郑州网站seo中国建设银行行号查询 天娇易业网站建设公司各大网站博客怎么做推广 如何做网站主题怎么向企业推销网站建设 保险公司网站查询怎样自创网站 郑州建立网站阿里云网站建设详细教程 上海网站建设费用多少钱一元购物app 广州网站托管软件开发工程师太累了 一个外国人做汉字网站织梦调用网站名称 做网站怎样调用支付宝接口域名哪里注册 dede网站前台没有图片微信会员卡小程序 惠州市建设规划局网站上海到北京机票 长岭建设局网站seo怎么快速提高排名 深圳企业网站建设服务中心吧台 东莞网站建设 提供网站制作公司哪家好静态网站做一单多少钱 网站承载量怎么做html5官网免费下载 搭建本地网站环境明港网站建设公司 服务器有了怎么做网站wordpress 段子主题 网站怎样建设wordpress目录页去掉 网络营销跟网站推广有啥区别深圳企业网页制作 济宁住房和城乡建设厅网站俄文网站推广 兰州建网站的建网站的经历 济南企业网站关键词推广官方网站下载水印相机 怎么用织梦做自己的网站学校英文版网站建设方案 旅游电子商务网站开发方案凡科可以做返利网站吗 深圳华南城网站建设平湖网站建设公司 杭州网站关键词青岛手机端网络推广培训