This content is archived. See latest version here

Last updated: Oct 21 2014

The MetaEnum class represents enumerations which can be single or multi-select. When a new meta enum is created, a meta type with the McDataType property and McDataType.Enum value is registered. If an enumerator has been created, you can create a new field with the enumerator meta type. The entity object property returns the selected item ID (Int32) or an array of selected item IDs (Int32[]).

When creating and deleting meta enums, remember that a meta model can only be modified in Design mode. Refer to the MetaClassManager Class section for more information.

Getting an enumerator collection

Since the enumerator is an original meta type, you can get all enumerators from the MetaClassManager.RegisteredTypes property.

Example: Find all enumerators

C#
foreach(MetaFieldType type in DataContext.Current.MetaModel.RegisteredTypes)
{
if (type.McDataType == McDataType.Enum)
{
// The enumerator is found
}
}

Creating an enumerator

Call the Create method of the MetaEnum class, passing type name, friendly name and multy value flag to create a new enumerator.

Example: Create a new enumerator

C#
MetaFieldType newEnum = MetaEnum.Create(enumName, enumFriendlyName, bMultiValue);

Managing enumerators

The following methods from the MetaEnum class are useful when managing enumerators:

  • Call IsUsed, passing meta type to determine whether the specified type is used in any meta class.
  • Call AddItem, passing meta type, item friendly name and order ID to add an enum item to the enumerator.
  • Call RemoveItem, passing meta type and item ID to remove an enum item.
  • Call GetItems, passing meta type to get all enum items.
  • Call UpdateItem, passing meta type, item friendly name and order ID to update an enum item.
  • Call RenameItem, passing meta type, item ID and the new enum name to rename an enum item.
  • Call ChangeOrder, passing meta type, item ID and new order ID to rename an enum item.

Creating an enum meta field

If an enumerator has been created, you can create a new field with the enumerator meta type.

Example: Creation of enum meta field

C#
public MetaField CreateEnumField(string name, string friendlyName, string enumName, bool isNullable, string defaultValue, bool enumEditable)
{
if (name == null)
throw new ArgumentNullException("name");

if (friendlyName == null)
throw new ArgumentNullException("friendlyName");

AttributeCollection attr = new AttributeCollection();
attr.Add(McDataTypeAttribute.EnumEditable, enumEditable);
MetaField retVal = this.MetaClass.CreateMetaField(name, friendlyName, enumName, isNullable, defaultValue, attr);
return retVal;
}

Removing enumerators

Call the Remove method of the MetaEnum class, passing meta type to delete an enumerator.


Do you have feedback on this documentation? Send an email to documentation@episerver.com. For development-related questions and discussions, refer to our Forums on https://world.episerver.com/forum/