2012-08-13 13 views
9

Nell'immagine in basso, "MyCars" è una raccolta. Se la proprietà di un oggetto è una raccolta, in un PropertyGrid il valore viene visualizzato come stringa "(Raccolta)" con un pulsante a destra se l'elemento è selezionato.Modifica il valore per l'elemento di proprietà in PropertyGrid

È possibile modificare il valore "(Raccolta)"? Se é cosi, come? Il motivo per cui lo chiedo è perché ho implementato un UITypeEditor personalizzato per l'oggetto che apparirà in PropertyGrid nel mio programma. Finora, il pulsante a destra appare ma il valore del testo è lo stesso del nome visualizzato della proprietà. Mi piacerebbe che una stringa diversa appaia lì.

Example propertygrid.

Edit: per quello che vale, so di poter eseguire l'override del metodo PaintValue da UITypeEditor e fornire un'icona, che io possa finire per fare se non riesco a risolvere questo problema, ma mi piacerebbe Mi piacerebbe ancora sapere se e come quel testo "(Collezione)" può essere cambiato.

+0

Penso che avresti ancora finito con "(Raccolta)" accanto alla tua icona se hai usato il metodo PaintValue, ma non sei sicuro. –

risposta

7

Questo articolo Customized display of collection data in a PropertyGrid potrebbe essere di aiuto.


** UPDATE **

Per fornire una versione riassunta di questo articolo (in caso di collegamento essere disponibile), i passaggi necessari per la personalizzazione di visualizzazione e una descrizione del contenuto in una raccolta PropertyGrid sono i seguenti:

  1. Fornire un descrittore di proprietà personalizzata derivando una classe formano la classe base astratta PropertyDescriptor.
  2. Ignora metodi e proprietà astratti. Fornire una corretta implementazione per le proprietà DisplayName e descrizione.
  3. Lascia che la classe raccolta implementa l'interfaccia ICustomTypeDescriptor.
  4. Restituisce una raccolta di descrittore di proprietà personalizzate tramite il metodo GetProperties().
  5. Utilizzare facoltativamente gli oggetti derivati ​​TypeConverter forniti da .NET o implementare le proprie classi per personalizzare la rappresentazione testuale delle classi di dominio. Assegnali alle classi o proprietà appropriate utilizzando la classe TypeConverterAttribute.

di globalizzare i dati PropertyGrid, descrittori di proprietà possono essere concatenati insieme (Vedi anche Globalized property grid).

+1

^Questa è la risposta! –

+1

Wow! Ha funzionato! Grazie! – kevin628

Problemi correlati