DevExpress 知识库在这里解释了如何实现这一点:KA18907。请参阅第 2.2 和 2.3 节。
如果您的业务对象与编辑器在同一个模块中声明,那么您可以这样做:
//Class declared in a WinForms module, for example
public class BusinessObject : BaseObject {
...
[ModelDefault("PropertyEditorType", "SampleSolution.Module.Win.PropertyEditors.CustomStringEditor")]
public string Description {
get { return GetPropertyValue<string>("Description"); }
set { SetPropertyValue<string>("Description", value); }
}
}
否则,请改用EditorAlias 属性。
public class BusinessObject : BaseObject {
...
[EditorAlias("CustomStringEdit")]
public string Description {
get { return GetPropertyValue<string>("Description"); }
set { SetPropertyValue<string>("Description", value); }
}
}
并在您的编辑器中设置相同的字符串标识符。 (这允许为不同的编辑器指定单独的 Web 和 Win 模块)。
[PropertyEditor(typeof(String), "CustomStringEdit", false)]
public class CustomStringEditor : StringPropertyEditor {
public CustomStringEditor(Type objectType, IModelMemberViewItem info)
: base(objectType, info) { }
...
}