这一讲,你将学到如何给业务对象和他们的属性设置规则。最终用户在执行赋值操作后将验证这些规则。你可以实现必填规则使得Position.Title属性不能为空。此规则将在Position对象保存的时候被验证。你还能够看到打破规则的界面提示。
在此之前,我建议你去读一下之前的课程:
· 【翻译】eXpressAppFramework QuickStart 业务模型设计(二)—— 从业务类库中继承
· 【翻译】eXpressAppFramework QuickStart 业务模型设计(四)—— 实现自定义业务类
· 给你的MySolution.Module项目添Validation模块。为此,在解决方案导航的MySolution.Module项目中找到XXXModule.cs文件。双击。调用Module设计器。在ToolBar中,找到DX: XAF.Modules.vX.X。拖动ValidationModule到设计器的RequiredModules项中。重新生成解决方案。
· 在Position类的Title属性上应用RuleRequiredField特性。第一个参数,制定Rule ID(如"RuleRequiredField for Position.Title");第二个参数,验证规则的上下文(如 DefaultContexts.Save)。如下代码演示此特性:
[System.ComponentModel.DefaultProperty("Title")]
public class Position : BaseObject {
//
private string title;
[RuleRequiredField("RuleRequiredField for Position.Title",DefaultContexts.Save)]
public string Title {
get { return title; }
set { SetPropertyValue("Title", ref title, value); }
}
}
· 运行程序(不管是Windows Forms还是ASP.NET)。打开Position明细视图。确保Title属性为空并且点击Save按钮。将显示出如下警告信息:
......Windows Forms应用程序:
......ASP.NET应用程序:
此警告信息将在你点击SaveAndClose按钮或者其他将对象保存到数据库中的行为时出现。
· 关闭此警告信息,给Title属性赋值并且点击Save按钮。对象将被成功保存。
我的话:
这个QuickStart的业务模型设计系列总算的翻译完了。不过单这10篇文章相信大家已经能体会出XAF的强大之处了——编程人员只用写业务对象。我觉得这是一种很好的提高生产力的方式,下面的文章我就会针对XAF的内部框架实现进行分析。这个QuickStart其实还有其他的部分,我就不翻译了,大家可以下载文档自己学习。