



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MVVM模式主要是为了实现视图和逻辑的分离,通常在实现的例子之中,在ViewModel一层会使用RealCommand,下面是我在网上根据实践,得到的完整实例,和大家分享一下一、首先是在数据部分,即Model层是数据部分,数据来源不限。在此定义person类,其中包括所用的基本属性。publicclassPerson(privatestring_Name;publicstringName{get(return_Nanie;}set{_Name=value;}}"privateint_Age;publicintAge{get{return_Age;}set{_Age=value;}}"publicPerson(stringnantejintage){this.Name二name;this.Age=age;下面的类存放整个数据列表,并为了进行测试,进行了简单的初始化工作。publicclassPersons{List<Person>personList=newList<Person>():publicPersons(){personList.Add(newPerson33));personList.Add(newPerson22));personList.Add(newPerson^Koll^j33));personList.Add(newPerson("Mark^j22));}publicList<Person>GetPersons(){returnpersonList;}二、在ViewModel层,实现数据和界面之间的逻辑,在类中,包括了属性和命令,都将与界面进行数据绑定,其中Command只能与具有Comman属性的控件进行绑定,否则就要采用其他的方式,但是在这里使用的是按钮,所以可以进行。实现命令时,自定义命令时要实现ICommand接口,在UI界面中,一般会继承RouteCommand或是RouteUICommand,这都是有弊端的,所以大家一般采用,自定义一个RelayCommand,下面是基本代码,但是要注册多个命令时,定义将会有所改动。privateAction_handler;publicRe1ay11Conunand(Actionhandler){—handler=handler;}"privatebool_isEnabled;publicboolIsEnabled{get{return_isEnabled;}set{if(value!=_isEnabled){"_isEnabled=value;if(CanEKecuteChanged!=null){CanEsecuteChanged(thiEventArgs.Empty);}}}}publiceventEventHandlerCanExecuteChanged;publicboolCanEsecute(objectparameter){returnIsEnabled;}publicvoidEsecute(objectparameter)ViewModel的定义代码如下:classPerson?iewMode1:INotifyFropertyCharL^ed{ffregiunPruper1edpublieeventPropert3<h:iTLgeilEventHmhicIIerPropertj.<h:ifLged;SendregionffregiunPropertiesprivatestrins_searchTeKt;/y查询关键字publicstrinsSearch?ext{get{return_searchTeKt;}set[_searchTe>:t=value:if(PrupertyChanged!=nul1)this.PropertyChaiiEed(thi*newPropertyCharLEeilEventArgs("SearchText"));privateList<Persun>_resultTest:〃查询结果 -publicList<Person>ResultTestget{return_resultTest:}set{_resuitTest二value;if(PropertyChan氏ed!=nul1){PropertyChanged(thi司newPropertyChaiigeliEventArgs(''EesuitTevt,v));privateIC0JTLJTL:di_Ld_cmd;publicICuITLJTL:irLdCmd{set{return_cmd:}}一#endregionSregion构造函数publiePersun7iewMcniel(){HuiTL:di_L=newList<Persun>();HuirL:di_L=newPersons().GetPersons();IsEnabled=true}:_cmd=newRe1ay11CunuTL^id(Searhins)}"'IsEnabled=true}:#region构造函数publicPersonViewModel(){HumarL=newList<Person>();Huntan=newPersons().GetPersons():_cmd=newRelay1lCommand(Searhing){IsEnabled=true};}~#endregionpublicList<Person>Human;publicvoidSearhing(){List<Person>person=null:if(!string.IsNul10rEmpty(SearchTest)){person=newList<Person>():foreach(PersonpinHuman){if(p.Name.Contains(SearchTest)){person.Add(p);if(person!=null){ResultTest=person;}}}三、其中在View和ViewModel层之间是通过数据绑定联系在一起的。View层的xaml文件代码:<Grid><Grid.RowDefinitions>■CRuwDefinitionHeight=,v50,v></EuwDefmitiun>■xRuwDefiniticmHeight=,T*"></FjjwDefinitiun></Grid.RuwDefmitiuns><Grid.CulujTLriljefinitiuns><CuluiiLfLDefinitionWidth='v150,vX/ColuirmDefinitiun><CulujiLfiDefiniticmWidth=":*;'></Culujnnl〕已finitiun></(trid.CuluuiLriljefinitinns><DataGridGrid.Ru!i.f=,v1"'Grid.CuIujiltlSp:ii_L=,v2N:dJTie='vdataGrid"'ItemsSource="{BmdingResuitText}"Height="200"HorizontalAligrunent="Center"VerticalAligrjTLent='vTop,vWidth='300,v></DataGrid><TextEozGrid.CulujTLfL='vO,vGrid.Rui.|1f='v0,vNam已二“tMt1*Heigl-Lt='v20,vTeAt='v{BindingSearchTestjMode=TwoWa]/}"HorizontalAligrunent="Center,TWidth=100"'></TextBuK><ButtunGr1d.Culumn=,v1,vGrid.,v0"Cuntent=''Eutton,vHeight="2ID*HorizuntalAligrunent=,vLeft"Msjtle=,vbuttonlVerticalAligrunent=,TCenter"Width="64"C曰
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聚四氟再生粉购销合同范本6篇
- 街头店面租赁合同6篇
- 基于边缘计算的深度学习预处理-全面剖析
- 医用护理学器材租赁合同
- 文艺用品租赁合同
- 创新生态系统与产业链融合-全面剖析
- 2025年新品牌设计服务合同8篇
- 智能制造系统构建与优化-全面剖析
- 城郊生态系统服务价值综合评价-全面剖析
- 私人门面转让合同
- 关于我国垂直型政府审计体制改革的思路与建议工商管理专业
- 电子商务B2B模式-ppt课件
- 调研汇报玄武湖
- 操作系统信号量PV操作题若干
- 浙江工商大学毕业论文格式正文
- EBZ260M-2掘锚机的技术规格书
- 小学人教版六年级下册第三单元作文:六年级下册语文第三单元作文:我的理想作文800字
- 涵洞水力计算
- PCBA外观检验标准_IPC-A-610E完整
- 新版《江苏省建设工程验收资料》分部分项检验批划分文档
- 物流客户关系管理论文
评论
0/150
提交评论