Bonjour,

J'ai une propriété de type Enum que j'aimerais pouvoir éditer dans une PropertyGrid (celle de Visual Studio par exemple):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
public Enum MyProperty { get; set; }
Je créé le type de l'Enum de manière dynamique via EnumBuilder:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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