XtraEditors库提供了大量编辑类控件,使我们能轻松改变程序里各式编辑器的样式风格。在XtraEditors库里主要提供了两类组件:Editor和Control。
XtraEditors库的Editor的主要特性是:
l 提供数据绑定
l 全都可以作为独立控件或作为XtraGrid,XtraTreeList, XtraBars容器内的嵌入位置的编辑器
l 由于它们都是BaseEdit的后裔,故拥有统一的可视风格和提示机制
如图1是BaseEdit后裔类:
图1
XtraEditors库的Control只能作为独立控件,即他们不能作为容器控件的嵌入位置编辑器,它们都是BaseStyleControl的后裔,拥有统一的可视风格和行为特性。
下图2是二者的继承层次:
图2
关于Editor库和RepositoryItem
每个能作为嵌入位置编辑器的Editor都有一个Properties属性,它存储了editor的设置和事件句柄。该属性代表了RepositoryItem的一个后裔类的实例。例如,一个DateEdit(时间编辑器)提供了DateEdit.Properties属性,该属性是RepositoryItemDateEdit类型。继承自RepositoryItem的类叫库对象,一个库对象可以作为编辑器的一部分(通过编辑器的Properties属性访问),但库对象也可以独立存在。
editor和RepositoryItem的关系如图3所示:
图3
理解了上述几个关系,在XAF中使用XtraEditors库就容易多了,具体例子参考XAF帮助文档的Task-BasedHelp/PropertyEditors类别下几个事例。