2

I am using Dev Express XAF with Entity framework. I want to be able to specify that my Description field uses property editor DevExpress.ExpressApp.HtmlPropertyEditor.Win.HtmlPropertyEditor

I can do this by setting the property editor inside model.xafml in the views that involve the field. However I would prefer to just set it once in the business object as an attribute.

Is there a way to do this?

Zein Makki
  • 29,485
  • 6
  • 52
  • 63
Kirsten
  • 15,730
  • 41
  • 179
  • 318

1 Answers1

1

The DevExpress knowledge base explains how to achieve this here: KA18907. See section 2.2 and 2.3.

If your business object is declared in the same module as the editor, then you can do this:

//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); }
    }
}

Otherwise, use the EditorAlias attribute instead.

public class BusinessObject : BaseObject {
    ...
    [EditorAlias("CustomStringEdit")]
    public string Description {
        get { return GetPropertyValue<string>("Description"); }
        set { SetPropertyValue<string>("Description", value); }
    }
}

and set the same string identifier in your editor. (This allows different editors to be specified separate Web and Win modules).

[PropertyEditor(typeof(String), "CustomStringEdit", false)]
public class CustomStringEditor : StringPropertyEditor {
    public CustomStringEditor(Type objectType, IModelMemberViewItem info)
        : base(objectType, info) {  }
    ...
}
shamp00
  • 11,106
  • 4
  • 38
  • 81