RepositoryItemCheckedComboBoxEdit.AddEnum(Type, Boolean) Method
Adds new items that represent elements of the specified enumeration to the editor drop-down, allowing you to specify whether enumeration constant names or integer values are assigned to the item values.
Namespace: DevExpress.XtraEditors.Repository
Assembly: DevExpress.XtraEditors.v24.2.dll
NuGet Package: DevExpress.Win.Navigation
#Declaration
#Parameters
Name | Type | Description |
---|---|---|
enum |
Type | The type of the required enumeration. |
add |
Boolean | true if enumeration underlying integer values are assigned to the item values; otherwise, false. |
#Remarks
The AddEnum method retrieves an array of the constants in the specified enumeration. Based on the retrieved constants, the ListBoxItem objects are created:
- the item Value property (see ListBoxItem.Value) — is set to the corresponding enumeration constant name or constant value of the enumeration underlying integer type, depending on the addEnumeratorIntegerValues parameter;
- the item Description property (see CheckedListBoxItem.Description) — is set to the value that is automatically generated based on the return value of the ToString() method invoked on the corresponding enumeration constant. You can also specify a custom method that provides an item description using the RepositoryItemCheckedComboBoxEdit.AddEnum<TEnum> method overload with the displayTextConverter parameter.
The created items are added to the RepositoryItemCheckedComboBoxEdit.Items collection.
When a specific item is selected in the CheckedComboBoxEdit control, the CheckedComboBoxEdit.EditValue property is set to the corresponding enumeration constant name or underlying integer value.
#Example
The following example demonstrates how to populate the CheckedComboBoxEdit control with items using the RepositoryItemCheckedComboBoxEdit.AddEnum<TEnum> method. The image below shows the result of executing the code in the example.
using System;
using System.ComponentModel;
namespace WindowsFormsApplication1 {
public enum Day {
// The Description attribute can be used
// to provide descriptions for items.
[Description("Saturday")]
Sat = 7,
Sun = 1,
Mon,
Tue,
Wed,
Thu,
Fri
};
public partial class Form1 : DevExpress.XtraEditors.XtraForm {
public Form1() {
InitializeComponent();
// Populates the CheckedComboBoxEdit with items
// generated based on the Day enumeration constants.
// The method parameter specifies the delagate
// that incapsulates the method providing
// custom item descriptions.
checkedComboBoxEdit1.Properties.AddEnum<Day>(new Converter<Day, string>(MyConverter));
}
// Returns a custom string based on the specified day.
public static string MyConverter(Day d) {
Type dayType = d.GetType();
Type dayUnderlyingType = Enum.GetUnderlyingType(dayType);
string result = Convert.ChangeType(d, dayUnderlyingType).ToString() + ". " + d.ToString();
if (d == Day.Sat || d == Day.Sun) result += " (weekend)";
return result;
}
}
}