EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:将整数属性显示为枚举

本主题描述了在不希望修改(或无法修改)此类源代码的情况下如何将业务类整数属性显示为枚举。

注意

移动应用程序不支持将业务类整数属性显示为枚举,因此本主题中描述的方法无法在Mobile平台中实现。如果有必要在您的Mobile应用程序中实现此方案,请使用支持中心与我们联系。

提示

DevExpress代码示例数据库(http://www.devexpress.com/example=E4925)中提供了完整的示例项目。

考虑以下SampleObject业务类。

[DefaultClassOptions]
public class SampleObject : BaseObject {
    public SampleObject(Session session) : base(session) { }
    private string name;
    public string Name {
        get { return name; }
        set { SetPropertyValue(nameof(Name), ref name, value); }
    }
    private int integerProperty;
    public int IntegerProperty {
        get { return integerProperty; }
        set { SetPropertyValue(nameof(IntegerProperty), ref integerProperty, value); }
    }
}

假定此类位于外部程序集中,并且您不能修改其代码。任务是显示枚举值而不是整数(例如,Value1表示零,Value2表示1等)。请按照以下步骤学习如何解决此任务。

  1. 实现一个枚举,其值将映射为整数值。

    public enum SampleEnum { Value1, Value2, Value3}
    
  2. 在WinForms模块项目中,通过继承EnumIntPropertyEditor <SampleEnum>类来创建自定义MyEnumIntPropertyEditor属性编辑器。请注意,您的编辑器应该是公开的。

    using DevExpress.ExpressApp.Editors;
    using DevExpress.ExpressApp.Model;
    using DevExpress.ExpressApp.Win.Editors;
    // ...
    [PropertyEditor(typeof(int), false)]
    public class MyEnumIntPropertyEditor : EnumIntPropertyEditor<SampleEnum> {
        public MyEnumIntPropertyEditor(Type objectType, IModelMemberViewItem model)
            : base(objectType, model) {  }
    }
    
  3. 运行WinForms模块项目的模型编辑器。设置BOModel |的IModelCommonMemberViewItem.PropertyEditorType属性。会员| MyEnumIntPropertyEditor的IntegerProperty节点。
  4. 在ASP.NET模块项目中,通过继承ASPxEnumIntPropertyEditor <SampleEnum>类来创建自定义MyEnumIntPropertyEditor属性编辑器。请注意,您的编辑器应该是公开的。

    using DevExpress.ExpressApp.Editors;
    using DevExpress.ExpressApp.Web.Editors.ASPx;
    using DevExpress.ExpressApp.Model;
    // ...
    [PropertyEditor(typeof(int), false)]
    public class ASPxMyEnumIntPropertyEditor : ASPxEnumIntPropertyEditor<SampleEnum> {
        public ASPxMyEnumIntPropertyEditor(Type objectType, IModelMemberViewItem model)
            : base(objectType, model) {  }
    }
    
  5. 运行ASP.NET模块项目的模型编辑器。设置BOModel |的IModelCommonMemberViewItem.PropertyEditorType属性。会员| ASPxMyEnumIntPropertyEditor的IntegerProperty节点。

下图说明了WinForms应用程序和ASP.NET应用程序中的结果。

WinForms

EnumIntPropertyEditor_Win

ASP.NET

EnumIntPropertyEditor_Web

转载保留此链接,注明出处