L'approvazione, in modo da io gli ha risposto io stesso. L'esempio di codice mostra che un codice categoria con una proprietà che ha i valori il aaa, il bbb, ccc disponibile in un a discesa in una griglia della proprietà, ma il codice aggiunge dinamicamente il DDD & il eee alla lista e possono anche essere selezionati nella griglia della proprietà.
Sto inviando la soluzione nel caso chiunque trovi mai questo filetto mentre cercando la stessa cosa.
Appena generare un nuovo progetto, aggiungere una griglia della proprietà alla forma ed incollare il codice dentro.
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 il sistema;
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
{
codice categoria MyConverter: TypeConverter
{
bool pubblico GetStandardValuesSupported (contesto della provvigione supplementare di ITypeDescriptorContext)
{
di ritorno allineare;
}
provvigione supplementare pubblica StandardValuesCollection GetStandardValues (contesto di ITypeDescriptorContext)
{
Lista della lista = (contesto. Caso come Form1.myProp) .MyList;
Cols di StandardValuesCollection = nuovo
StandardValuesCollection (lista);
cols di ritorno;
}
}
codice categoria parziale pubblico Form1: Forma
{
myProp pubblico del codice categoria
{
myStr della stringa;
[TypeConverter (typeof (MyConverter))]
stringa pubblica MyItem
{
ottenere {myStr di ritorno; }
regolar {myStr = valore; }
}
Elencare la lista;
[Browsable (falso)]
lista pubblica MyList
{
ottenere
{
se (posizione di segnale minimo del == della lista)
{
lista = nuova lista ();
lista. Aggiungere (“aaa„);
lista. Aggiungere (“bbb„);
lista. Aggiungere (“ccc„);
}
restituire la lista;
}
}
}
pubblico Form1 ()
{
InitializeComponent ();
obj del myProp = nuovo myProp ();
obj.MyList.Add (“DDD„);
obj.MyList.Add (“eee„);
this.propertyGrid1.SelectedObject = obj;
}
}
}
|