internal void Set(EnumValue enumValue)
{
ignore_changes = true;
Items.Clear();
if (enumValue.Items == null || enumValue.Items.Count == 0)
{
if (enumValue.EnumType != null)
{
if (enumValue.Items == null)
enumValue.Items = new Dictionary<int,string>();
else
enumValue.Items.Clear();
foreach (Enum x in Enum.GetValues(enumValue.EnumType))
{
int value = (int)Convert.ChangeType(x, typeof(int));
if(!enumValue.Items.ContainsKey(value))
enumValue.Items.Add(value, x.ToString());
}
}
}
if (enumValue.Items != null && enumValue.Items.Count > 0)
{
int idx = -1;
foreach (KeyValuePair<int,string> pair in enumValue.Items)
{
idx++;
ComboBoxEnumItem li = new ComboBoxEnumItem(pair.Value, pair.Key);
Items.Add(li);
if (enumValue.ValueInt == pair.Key)
SelectedIndex = idx;
}
}
ignore_changes = false;
}