Bonjour,
J'ai une propriété de type Enum que j'aimerais pouvoir éditer dans une PropertyGrid (celle de Visual Studio par exemple):
public Enum MyProperty { get; set; }
Je créé le type de l'Enum de manière dynamique via EnumBuilder:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| AppDomain currentDomain = AppDomain.CurrentDomain;
AssemblyName assemblyName = new AssemblyName("TemporaryAssembly");
AssemblyBuilder assemblyBuilder = currentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave);
moduleBuilder = assemblyBuilder.DefineDynamicModule(assemblyName.Name, assemblyName.Name + ".dll");
EnumBuilder enumBuilder = moduleBuilder .DefineEnum("MyEnumerationType", TypeAttributes.Public, typeof(int));
// Je définit mon enumération à partir d'une source de données.
int enumCurrentValue = 1;
foreach (var data in this.DataSource)
{
enumBuilder.DefineLiteral(data , enumCurrentValue);
enumCurrentValue++;
}
// Je créé le nouveau type.
enumType = enumBuilder.CreateType();
// J'initialise la propriété.
this.MyProperty = (Enum)Activator.CreateInstance(enumType); |
Mais, quand je veux éditer cette propriété dans la PropertyGrid, celle-ci propose une ComboBox vide 
Est-ce que j'ai oublié une étape pour définir correctement mon Enum ?
Merci d'avance.
AL2000
Partager