MVVM模式完整实例

上传人:s9****2 文档编号:477237845 上传时间:2022-11-17 格式:DOCX 页数:4 大小:14.66KB
返回 下载 相关 举报
MVVM模式完整实例_第1页
第1页 / 共4页
MVVM模式完整实例_第2页
第2页 / 共4页
MVVM模式完整实例_第3页
第3页 / 共4页
MVVM模式完整实例_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《MVVM模式完整实例》由会员分享,可在线阅读,更多相关《MVVM模式完整实例(4页珍藏版)》请在金锄头文库上搜索。

1、MVVM模式主要是为了实现视图和逻辑的分离,通常在实现的例子之中,在ViewModel一 层会使用RealCommand,下面是我在网上根据实践,得到的完整实例,和大家分享一下 一、首先是在数据部分,即Model层是数据部分,数据来源不限。在此定义person类,其 中包括所用的基本属性。public class Person(privat e st ring _Name;public string Nameget ( return _Nanie; set _Name = value; privat e int _Age ;public int Ageget return _Age; set

2、_Age = value; public Person (st ring nantej int age)this. Name 二 name ;this. Age = age;下面的类存放整个数据列表,并为了进行测试,进行了简单的初始化工作。public class PersonsList personList = new List():public Persons ()personList. Add(new Person33);personList. Add(new Person22);personList. Add (new PersonKollj 33);personList. Add(n

3、ew Person(Markj 22);public List GetPersons()return personList;二、在ViewModel层,实现数据和界面之间的逻辑,在类中,包括了属性和命令,都将与 界面进行数据绑定,其中Command只能与具有Comman属性的控件进行绑定,否则就要采 用其他的方式,但是在这里使用的是按钮,所以可以进行。实现命令时,自定义命令时要实 现 ICommand 接口,在 UI 界面中,一般会继承 RouteCommand 或是 RouteUICommand,这 都是有弊端的,所以大家一般采用,自定义一个RelayCommand,下面是基本代码,但是要

4、注册多个命令时,定义将会有所改动。p r ivat e Act i on _handl e r ;public Re 1 ay 11Conunand(Action handler)handler = handler;private bool _isEnabled;public bool IsEnabledget return _isEnabled; setif (value != _isEnabled) _isEnabled = value;if (CanEKecuteChanged != null)C anEs e cut eChang ed(thi Event Args. Empt y);

5、public event EventHandler CanExecuteChanged;public bool CanEsecute (object parameter)return IsEnabled;public void Esecute(object parameter)ViewModel的定义代码如下:class Pers on? i ewMode 1: INot ifyF rop e rt yCharL e dffregiun Pruper1edpub lie event P r op e rt 3h:iTLg e ilEvent HmhicII er Propert j.:t =

6、value:if (PrupertyChanged != nul1)t hi s. Prop e rt yChaiiE ed (t hi * new Prop e rt yCharLE e ilEvent Args ( S e ar chT ext);private List _result Test:查询结果-public List Result Testget return _result Test: set_resuit Test 二 value;if (PropertyChan氏ed != nul1)PropertyChanged (thi司 new PropertyChaiigeli

7、EventArgs (Eesuit Tevt,v);p r ivat e IC 0JTLJTL:di_Ld _ cmd;public ICuITLJTL:irLd Cmdset return _cmd: 一#endregionSregion构造函数pub lie Pers un7 i ewMcniel ()HuiTL:di_L=new List ();HuirL:di_L=new Persons (). Get Per sons ();IsEnabled = true :_cmd = new Re 1 ay 11C unuTLid (S earhins) #endregion public L

8、ist HumarL;#region构造函数public PersonViewModel()HumarL=new List ();Huntan=new Persons (). GetPersons ():_cmd = new Relay1lCommand(Searhing) IsEnabled = true ; #endregionpublic List Human;public void Searhing()List person = null:if (!string. IsNul10rEmpty(SearchTest)person = new List():foreach (Person

9、p in Human)if (p. Name. Contains(SearchTest)person. Add(p);if (person != null)Result Test = person;三、其中在View和ViewModel层之间是通过数据绑定联系在一起的。View层的xaml文件代码:CRuwD ef init ion He i ght=,v 50,v xRuwD ef init icm He i ght=,T * 在后台代码中:PersonViewModel personViewModel 二 new PersonViewModel0 ;public MainWindowOInit i al i z eC omp onent 0 ;this. DataContest 二 personViewModel:至此,程序框架基本建立,希望能给大家学习带来帮助!!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号