孟伟斯.NET

快乐的开发者

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

这一讲,你将学到如何给业务对象和他们的属性设置规则。最终用户在执行赋值操作后将验证这些规则。你可以实现必填规则使得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)。如下代码演示此特性:

[DefaultClassOptions]
[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其实还有其他的部分,我就不翻译了,大家可以下载文档自己学习。

 

posted on 2009-11-04 16:40  孟伟斯.NET  阅读(748)  评论(1编辑  收藏  举报