关于 System.ComponentModel.IDataErrorInfo 续

今天发送了一个帖子《关于 System.ComponentModel.IDataErrorInfo》,第一次发送到主页上,以为很简单,随便说了一下,谁知道几个人都说太短了,没办法,谁叫我好事发送到首页呢。
我想你学习.net的时候一定使用过 ErrorProvider控件吧,在一个普通的绑定dataSet(或者dataView)的窗口中,如果你拖动一个ErrorProvider控件到窗口,并设置他的数据源也是这个dataset(或者dataview),那么你执行诸如下面的话时:
   row1.SetColumnError("CallName","必须填写名称");
这里的row1是datatable的某行,CallName是字段名。
这个时候,你会发现绑定到CallName的文本框后面“神奇”的出现了一个感叹号,并在闪烁。
详细的使用方法可以参见《msdn中ErrorProvider介绍》。

我的文章从自定义载体说起,关于什么是O/M,博客堂以前的文章有大量的介绍。
由于没有使用dataset,所以丧失了大量的功能,包括这个“神奇”的感叹号,在.net 1.1中我并没有发现比较明显的接口表明这个功能,幸运的是在.net 2.0中,我发现了大量有用的接口,包括这个IDataErrorInfo接口。
实际上,ErrorProvider控件通过这个接口获取绑定的载体的错误信息,所以,我在我的自定义载体 DataRowBase中实现了这个接口,在那篇文章中就是实现这个接口的代码。
当然,如果你还看不懂的话,我只能说:哦,你还年轻,有的是机会。
(玩笑而已,术业有专攻,编程本身太多分支,只不过你研究这个,我研究那个而已)

你可能感兴趣的:(component)