2016-06-01 10 views
2

Ich verwende Dev ExpressXAF mit Entity framework. Ich möchte in der Lage sein, zu spezifizieren, dass mein Description Feld Eigenschaftseditor DevExpress.ExpressApp.HtmlPropertyEditor.Win.HtmlPropertyEditorGeben Sie einen Eigenschaftseditor innerhalb des Geschäftsobjekts ein

nutzt ich dies, indem den Eigenschaftseditor innerhalb model.xafml in den Ansichten tun, die das Feld einbeziehen. Allerdings würde ich es vorziehen, es nur einmal in dem business Objekt als ein Attribut festzulegen.

Gibt es eine Möglichkeit, dies zu tun?

Antwort

1

Die DevExpress-Wissensdatenbank erläutert, wie Sie dies hier erreichen: KA18907. Siehe Abschnitt 2.2 und 2.3.

Wenn Ihr Business-Objekt im selben Modul als Editor deklariert wird, dann können Sie dies tun:

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

Andernfalls verwenden Sie das Attribut EditorAlias statt.

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

und setzen Sie die gleiche Zeichenfolge in Ihrem Editor. (Dadurch können verschiedene Editoren separate Web- und Win-Module angeben).

[PropertyEditor(typeof(String), "CustomStringEdit", false)] 
public class CustomStringEditor : StringPropertyEditor { 
    public CustomStringEditor(Type objectType, IModelMemberViewItem info) 
     : base(objectType, info) { } 
    ... 
} 
+0

Ich habe das Business-Objekt im plattformunabhängigen Modul deklariert. Ich brauche es dort, weil dies der Entity Framework Context ist. –

+1

Verwenden Sie 'EditorAlias' wie in 2.3 erklärt. – shamp00