(六)XAFView控制器教程.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(六)XAFView控制器教程

 HYPERLINK /foreachlife/p/xafviewcontrollerAndValidationContext.html 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()即为提交变更的内容。 当然如果不写这句,界面上也会发生变化,只是没有保存,需要保存时,我们可以再按下保存按钮。 实现自定义上下文: 在验证规则一节中的规则有上下文的概念,即,某些规则只

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档