L'ok, ainsi moi lui ont répondus moi-même. L'exemple de code montre qu'une classe avec une propriété qui a les valeurs D.C.A., le bbb, ccc disponible dans un dropdown dans une grille de propriété, mais le code ajoute dynamiquement le DDD et l'eee à la liste et eux peuvent également être choisis dans la grille de propriété.
Je signale la solution au cas où n'importe qui trouverait jamais ce fil tout en recherchant la même chose.
Juste créer un nouveau projet, ajouter une grille de propriété à la forme et coller le code dedans.
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
|
using le système ;
using System.Collections.Generic ;
using System.ComponentModel ;
using System.Data ;
using System.Drawing ;
using System.Linq ;
using System.Text ;
using System.Windows.Forms ;
namespace Dummy_PropertyGrid
{
classe MyConverter : TypeConverter
{
bool public GetStandardValuesSupported (contexte de priorité d'ITypeDescriptorContext)
{
de retour rectifier ;
}
dépassement public StandardValuesCollection GetStandardValues (contexte d'ITypeDescriptorContext)
{
Liste de liste = (contexte. Exemple comme Form1.myProp) .MyList ;
Cols de StandardValuesCollection = nouveau
StandardValuesCollection (liste) ;
cols de retour ;
}
}
classe partielle publique Form1 : Forme
{
myProp public de classe
{
myStr de corde ;
[TypeConverter (typeof (MyConverter))]
corde publique MyItem
{
obtenir {myStr de retour ; }
placer {myStr = valeur ; }
}
Énumérer la liste ;
[Éditable (faux)]
liste publique MyList
{
obtenir
{
si (nulle de == de liste)
{
liste = nouvelle liste () ;
liste. Ajouter (« D.C.A. ») ;
liste. Ajouter (« bbb ») ;
liste. Ajouter (« ccc ») ;
}
renvoyer la liste ;
}
}
}
public Form1 ()
{
InitializeComponent () ;
obj de myProp = nouveau myProp () ;
obj.MyList.Add (« DDD ») ;
obj.MyList.Add (« eee ») ;
this.propertyGrid1.SelectedObject = obj ;
}
}
}
|