- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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()即为提交变更的内容。当然如果不写这句,界面上也会发生变化,只是没有保存,需要保存时,我们可以再按下保存按钮。实现自定义上下文:在验证规则一节中的规则有上下文的概念,即,某些规则只
您可能关注的文档
- 14.观察由几个同样大的正方体摆成的组合体.ppt
- 14-运输经济学 第14章 寡头.ppt
- 14增长与分配战略.ppt
- 15平均利润与生产价格.ppt
- 15秋《经济应用文写作》作业4.doc
- 001 概述与材料基本性能.ppt
- 160810 销售沟通材料.pptx
- 16春《基础会计学》作业1答案.docx
- 15万预算240平跃层欧式风格设计案例.docx
- 1688-银行转账操作手册-买家版.pptx
- 建设工程质量安全管理标准化图集(安全篇2024版)ppt230页.pptx
- 《油气储存企业安全风险评估细则(2025年修订)》解读.pptx
- 2025年《危大工程专项施工方案严重缺陷清单专题培训》ppt120页_1230.pptx
- 中建分部分项检验批划分方案、资料目录策划编制要点ppt75页.pptx
- 某项目智慧工地示范项目应用成果介绍75页_5843.pptx
- 2025年中国风筝无人机LED夜光编队编程师应聘面试模拟题及答案.doc
- 2025年中国鞍钢集团招聘笔试题库附答案.doc
- 2025年中国鞍钢集团招聘面试预测题及答案.doc
- 临床器械实验培训试题及答案2025年版.docx
- 中石化《两个责任》解读分析.ppt
文档评论(0)