EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:自定义内置属性编辑器(PropertyEditor)(WinForms)

本主题描述如何为WinForms应用程序自定义内置XAF属性编辑器(请参阅“如何:自定义内置属性编辑器(ASP.NET)”主题以查看类似的ASP.NET示例)。在此示例中,DatePropertyEditor被定制为显示日历和时钟:

CustomPropertyEditor2

注意

您可以在XAF随附的Feature Center Demo中看到此处演示的代码,以及有关自定义属性编辑器的更多示例。默认情况下,Feature Center演示安装在%PUBLIC%\ Documents \ DevExpress演示19.2 \ Components \ eXpressApp Framework \ FeatureCenter中。该演示的ASP.NET版本可从http://demos.devexpress.com/XAF/FeatureCenter/在线获得。

继承属性编辑器

在WinForms模块项目中,继承DatePropertyEditor类。请注意,您的编辑器应该是公开的。由于此类是DXPropertyEditor类的后代,因此可以使用“存储库项目”访问其设置。要将自定义应用于在“详细信息视图”和“列表视图”中创建的控件,请重写SetupRepositoryItem方法。的属性编辑属性被应用到实现属性编辑器,以指定可用于日期时间 类型的属性:

using DevExpress.Utils;
using DevExpress.XtraEditors.Repository;
using DevExpress.ExpressApp.Editors;
using DevExpress.ExpressApp.Model;
using DevExpress.ExpressApp.Win.Editors;
//...
[PropertyEditor(typeof(DateTime), false)]
public class CustomDateTimeEditor : DatePropertyEditor {
    public CustomDateTimeEditor(Type objectType, IModelMemberViewItem info) : 
        base(objectType, info) { }
    protected override void SetupRepositoryItem(RepositoryItem item) {
        base.SetupRepositoryItem(item);
        RepositoryItemDateTimeEdit dateProperties = (RepositoryItemDateTimeEdit)item;
        dateProperties.CalendarTimeEditing = DefaultBoolean.True;
        dateProperties.CalendarView = CalendarView.Vista;
    }
}

使用自定义属性编辑器

要将实现的属性编辑器用于特定属性,请在WinForms项目中运行模型编辑器,并将所需OwnMember或ViewItem节点的IModelCommonMemberViewItem.PropertyEditorType设置为CustomDateTimeEditor。

提示

要将实现的属性编辑器用于所有DateTime属性,请在上面的代码中将PropertyEditorAttribute构造函数的defaultEditor参数设置为true。该CompositeView.GetItems <T>方法,可以使用自定义属性编辑器的所有属性,而不是默认的属性编辑器。

请注意,应格式化与创建的属性编辑器关联的业务类的属性值,以显示DateTime值的时间部分

using DevExpress.ExpressApp.Model;
//...
[ModelDefault("DisplayFormat", "{0:MM.dd.yyyy hh:mm:ss}")]
[ModelDefault("EditMask", "MM.dd.yyyy hh:mm:ss")]
public DateTime CreatedOn { get; set;}

有关详细信息,请参阅格式化属性值主题。

相关文章

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