MetaEnum class
Represents single or multi-select enumerations.
When a new meta-enum is created, a meta-type with the McDataType property and McDataType.Enum value is registered. If an enumerator was created, you can create a field with the enumerator meta-type. The entity object property returns the selected item ID (Int32) or an array of selected item IDs (Int32[]).
NoteWhen you create and delete meta-enums, remember that you can only modify a meta-model in Design mode. See the MetaClassManager class section.
Get an enumerator collection
Because the enumerator is an original meta-type, you can get all enumerators from the MetaClassManager.RegisteredTypes property.
Example: Find all enumerators:
foreach(MetaFieldType type in DataContext.Current.MetaModel.RegisteredTypes)
{
if (type.McDataType == McDataType.Enum)
{
// The enumerator is found
}
}Manage enumerators
The following MetaEnum class methods are useful when managing enumerators:
- Call
AddItem, passing meta-type, item-friendly name, and order ID, to add an enum item to the enumerator. - Call
ChangeOrder, passing meta-type, item ID, and new order ID to rename an enum item. - Call
Create, passing type name, friendly name, andMultyValueflag to create a new enumerator. - Call
GetItems, passing meta-type, to get all enum items. - Call
IsUsed, passing meta-type, to determine whether the specified type is used in any meta-class. - Call
Remove, passing meta-type, to delete an enumerator. - Call
RemoveItem, passing meta-type and item ID, to remove an enum item. - Call
RenameItem, passing meta-type, item ID, and the new enum name, to rename an enum item. - Call
UpdateItem, passing meta-type, item-friendly name, and order ID to update an enum item.
Create an enumerator
Call the Create method of the MetaEnum class, passing type name, friendly name, and MultyValue flag to create a new enumerator.
Example: Create an enumerator:
MetaFieldType newEnum = MetaEnum.Create(enumName, enumFriendlyName, bMultyValue);Create an enum meta-field
You can create a field with the enumerator meta-type if you created an enumerator.
Example: Create an enum meta-field:
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;
}Updated 15 days ago
