在业务对象中指定属性编辑器

时间:2016-06-01 05:57:28

标签: entity-framework devexpress xaf

我将Dev Express XAFEntity framework一起使用。 我希望能够指定我的Description字段使用属性编辑器DevExpress.ExpressApp.HtmlPropertyEditor.Win.HtmlPropertyEditor

我可以通过在涉及该字段的视图中的model.xafml内设置属性编辑器来完成此操作。但是我更愿意只在business对象中设置一次作为属性。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

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) {  }
    ...
}