Questione : Valore di una proprietà chiave di registrazione

Hi.

I che scrive un app che dà all'utente la capacità di generare i comandi fittizi a tempo di esecuzione e di alterare le proprietà che sono attaccate a quei comandi.  Ho una griglia della proprietà per la pubblicazione delle proprietà e questo tutto lavora great.

However, sto avendo una poca difficoltà con i comandi seguenti di part.

The sarò indicato come componente di un'applicazione che funziona su un PC differente ed ogni controllo “sarà collegato„ ad un valore di registrazione.  Ho generato un treeview in cui l'utente può sviluppare una versione assettata dell'albero di registrazione della macchina di obiettivo, nella speranza che posso allora usare una proprietà a discesa per selezionare le chiavi di registrazione per ciascuno del controls.

So, in breve, io ho bisogno di un elenco a discesa per un articolo di griglia della proprietà e devo potere modificare questo elenco a discesa a runtime.

Advice sono benvenuto, persino i suggerimenti alternativi sono benvenuti, ma gradirei specialmente in anticipo un codice example.

Thanks.
class= del

Risposta : Valore di una proprietà chiave di registrazione

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;
        }
    }
}
Altre soluzioni  
 
programming4us programming4us