ItemsList CreatePossibleValuesList() { var result = new ItemsList(); if (PropertyDescriptor.IsBool) { var item = new ListItem(Consts.KEY_NAME, new StringId("[System.Yes]")) { Selected = Value == true.ToString() }; item.AdditionalProperties.Add(KEY_VALUE, true.ToString()); result.Add(item); item = new ListItem(Consts.KEY_NAME, new StringId("[System.No]")) { Selected = Value == false.ToString() }; item.AdditionalProperties.Add(KEY_VALUE, false.ToString()); result.Add(item); } else if (PropertyDescriptor.IsEnum) { foreach (string e in PropertyDescriptor.GetEnumValues()) { var item = new ListItem(Consts.KEY_NAME, e) { Selected = Value == e }; item.AdditionalProperties.Add(KEY_VALUE, e); result.Add(item); } } return(result); }