La autorización, así que yo le hemos contestado mismo. El ejemplo del código demuestra que una clase con una característica que tenga los valores aaa, bbb, ccc disponible en un dropdown en una rejilla de la característica, solamente el código agrega dinámicamente el DDD y el eee a la lista y ellos se pueden también seleccionar en la rejilla de la característica.
Estoy fijando la solución en caso de que cualquier persona encuentre nunca este hilo de rosca mientras que busque para la misma cosa.
Apenas crear un nuevo proyecto, agregar una rejilla de la característica a la forma y pegar el código adentro.
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:
|
usar sistema;
usar System.Collections.Generic;
usar System.ComponentModel;
usar System.Data;
usar System.Drawing;
usar System.Linq;
usar System.Text;
usar System.Windows.Forms;
namespace Dummy_PropertyGrid
{
clase MyConverter: TypeConverter
{
bool público GetStandardValuesSupported (contexto de la invalidación de ITypeDescriptorContext)
{
de vuelta verdad;
}
invalidación pública StandardValuesCollection GetStandardValues (contexto de ITypeDescriptorContext)
{
Lista de la lista = (contexto. Caso como Form1.myProp) .MyList;
Cols de StandardValuesCollection = nuevo
StandardValuesCollection (lista);
cols de vuelta;
}
}
clase parcial pública Form1: Forma
{
myProp público de la clase
{
myStr de la secuencia;
[TypeConverter (typeof (MyConverter))]
secuencia pública MyItem
{
conseguir {myStr de vuelta; }
fijar {myStr = valor; }
}
Enumerar la lista;
[Editable (falso)]
lista pública MyList
{
conseguir
{
si (falta de información del == de la lista)
{
lista = nueva lista ();
lista. Agregar (“aaa”);
lista. Agregar (“bbb”);
lista. Agregar (“ccc”);
}
devolver la lista;
}
}
}
público Form1 ()
{
InitializeComponent ();
obj del myProp = nuevo myProp ();
obj.MyList.Add (“DDD”);
obj.MyList.Add (“eee”);
this.propertyGrid1.SelectedObject = obj;
}
}
}
|