ListEditorAttribute Class

Applied to a custom List Editor. Registers the List Editor in the application and specifies the object type for which the List Editor is intended.

Namespace: DevExpress.ExpressApp.Editors

Assembly: DevExpress.ExpressApp.v18.2.dll

Declaration

[AttributeUsage(AttributeTargets.Class, Inherited = false)]
public class ListEditorAttribute :
    Attribute,
    _Attribute
<AttributeUsage(AttributeTargets.Class, Inherited:=False)>
Public Class ListEditorAttribute
    Inherits Attribute
    Implements _Attribute

When you implement a custom List Editor, it should then be available in the Application Model, so that you can use it for a List View. When the application is loaded, the reflection mechanism finds all the classes decorated with the ListEditorAttribute class, and adds them to the list of available List Editors. So, you can select your List Editor as a value of the Views | <ListView> node's IModelListView.EditorType property. Apply the ListEditorAttribute with the ListEditorAttribute.ListElementType parameter to the List Editor declaration to specify that your List Editor is designed only for a certain object type. Set ListElementType to Object to specify that your List Editor can display objects of any type.

Note

The approach described in this topic uses the reflection mechanism, which collects information on the types decorated by the ListEditorAttribute or PropertyEditorAttribute. It is the recommended way to register your List Editor, but if you want to speed up your application start, switch off this mechanism by overriding the ModelBase.RegisterEditorDescriptors method. Refer to the ModuleBase class description to learn more about this method.

The ListEditorAttribute attribute has several parameters. So, you have the following options:

  • You want your List Editor to be automatically set for all List Views for which another specific Editor was not applied (the GridListEditor and ASPxGridListEditor are used by default). In this instance, pass the Object type as the attribute's parameter. Note that you can also set your List Editor as default to the IModelViews.DefaultListEditor property of the Views Model Editor node.

    [ListEditor(typeof(object))]
    public class CustomListEditor : ListEditor {
        //...
    }
    

    Set the defaultEditor parameter to false to add this List Editor to the IModelViews.DefaultListEditor list.

  • You want your List Editor to be automatically set for List Views of a particular data type. In this instance, pass the required object type as the attribute's parameter. As a result, the IModelClass.EditorType property is set to your List Editor and your List Editor is used as the default one for objects of that data type. Note that your List Editor might not be used automatically as a default if there is another List Editor that uses this attribute with the same parameter.

    [ListEditor(typeof(Task))]
    public class CustomListEditor : ListEditor {
        //...
    }
    
  • You implement an extra List Editor for a particular object type, but you do not want it to be automatically set for List Views of this object type. However, you need to be able to set it for List Views when required. In this instance, pass the required object type as the first attribute parameter; and false as the second attribute parameter. In this instance, your List Editor is added to the IModelClass.EditorType list of editors available for List Views of the specified data type.

    [ListEditor(typeof(Task), false)]
    public class CustomListEditor : ListEditor {
        //...
    }
    

Also, you can register a List Editor with an alias using the alias parameter. This allows you to specify one alias for the ASP.NET and WinForms List Editors and set this alias to the DefaultListEditor or EditorType property in a Model Editor with platform-agnostic settings. So, these List Editors are applied to the corresponding platform-dependent List View automatically and you do not need to specify these Editors individually for each platform.

To see an example of using this attribute, refer to the How to: Implement a Custom WinForms List Editor and How to: Implement an ASP.NET Web List Editor Using a Custom Control help topics.

When implementing a Property Editor, use PropertyEditorAttribute.

Inheritance

Object
Attribute
ListEditorAttribute
See Also