- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(六)XAFView控制器
XAF应用开发教程(六)控制器是的,XAF也是MVC结构的,但不仅限于MVC,ViewModel也存在,它是一项复合技术,AOP,ORM,MVC都有。真实运行的系统中,仅有增删改查功能肯定是远远不够的,ERP、CRM等系统的开发中,有无数的业务逻辑,通常这些都是在控制器中实现的,控制器有两种:ViewController:应用于视图,需要操作视图的数据。WindowsController:应用于窗口,比如当前界面还没有视图,与具体视图也没有关系,比如登出系统按钮,不用考虑当前在哪个视图下面都可以做些操作。需求:为客户类填加审核操作。第一步,我们需要为客户类填加一个属性,即,已审核:找到客户.cs类:public class 客户.....{............. private bool _已审核; [ModelDefault(AllowEdit,False)] public bool 已审核 { get { return _已审核; } set { SetPropertyValue(已审核, ref _已审核, value); } }.............}这里,使用了新的Attribute,ModelDefault,它是让已审核这个属性在界面上是只读的,因为我们想用控制器控制些属性的值,所以将其禁止修改,改为按钮控制。??第二步,创建视图控制器:如下所示,在解决方案中找到XCRMDemo.Module项目,展开,找到Controllers文件夹,右键-添加-新建项.当然,是不是放到Controllers文件夹都是可以的,也可以自己按业务情况新建文件夹:然后出现:在名称处输入CheckViewController.cs创建完成后,并不上像上图一样,有一个审核按钮,需要从工具箱中拖一个SimpleAction到空白区域。选中新拖过来的按钮,并按下F4查看属性窗口,这里就与普通的窗体程序一样的界面了。如图所示,将3处都修改一下。在属性栏中找到闪电图标,找到Execute并双击。 private void 审核_Execute(object sender, SimpleActionExecuteEventArgs e) { var x = this.View.CurrentObject as 客户; x.已审核 = true; ObjectSpace.CommitChanges(); }可以看到有一个事件是空白的,敲入上述代码。按下F5查看效果:打开一条已有的记录,可以看到,已审核前面的checkbox已经不可以点了,而且在工具栏中已经有了一个”审核”按钮。按下审核按钮后,界面上的已审核checkbox也会打上勾。而且,完成后,不要点保存按钮,直接点击左侧导航中的客户信息,来到列表中,可以看到数据已经保存了。下面我们来看一下写的那三行代码: var x = this.View.CurrentObject as 客户; //this代表了当前控制器,View是当前控制器所生效的视图,CurrentObject是指当前操作的数据对象。因为当前是在详细视图下面,CurrentObject就是指打开的那条记录了。但是因为这个变量是通用的,所以为Object类型,我们可以转换为客户类。 x.已审核 = true;//转换完成后,就可以对属性值变更了。 ObjectSpace.CommitChanges();//ObjectSpace在控制器中是一个IObjectSpace接口类型,因为XAF会支持EF/XPO所以ObjectSpace的实例是XAF控制的简单的理解ObjectSpace就是对象的总控制对象,比如新建,删除,查询,都是通过它来进行,就像是直接在操作数据库,但是对象比库结构复杂,比如还方含方法、事件等编程元素在里面,所以它看起来比数据库功能强大多了。这里调用了 ObjectSpace.CommitChanges()即为提交变更的内容。当然如果不写这句,界面上也会发生变化,只是没有保存,需要保存时,我们可以再按下保存按钮。实现自定义上下文:在验证规则一节中的规则有上下文的概念,即,某些规则只在某个操作执行才被执行,我们上面增加了审核按钮,希望客户信息仅在审核时才为必填:第一步,增加验证规则:public class 客户.....{................ private DateTime _出生日期; [RuleRequiredField(审核时必填出生日期,审核)] public DateTime 出生日期 { get { return _出生日期; } set { SetPropertyValue(出生日期, ref _出生日期, value); } }................}可以看到,[Rul
您可能关注的文档
最近下载
- 考研法律硕士专业基础(法学397)研究生考试2024年模拟试卷与参考答案.docx VIP
- 黑龙江地方课程人文与社会五年级上册教案.pdf
- 电解质代谢紊乱护理查房ppt课件.pptx
- 第五章 信号调理电路.ppt
- 中小学教师数据素养题库及答案(包含期末考试)(1).pdf
- 传递窗紫外灯表面消毒效果验证-嘉和众邦.pdf
- 2025届高考语文一轮复习名篇名句默写基础题训练含答案.doc
- 《中国民间故事》导读.pptx
- 高级供应链管理师职业技能鉴定考试题库资料(含答案).pdf
- IEEE Std 1936.1-2021 IEEE Standard for Drone Applicatons Framework.人机应用框架标准.pdf
文档评论(0)