Sto cercando di ottenere una comprensione generale dell'utilizzo di ICustomTypeDescriptor, TypeDescriptionProvider, TypeConverter e UITypeEditor per modificare la modalità di visualizzazione e l'interfaccia di un oggetto PropertyGrid.ICustomTypeDescriptor, TypeDescriptionProvider, TypeConverter e UITypeEditor
Qualcuno può dirmi se è giusto o se mi mancano concetti o punti importanti? Sto solo cercando di capire perché e quando useresti ogni lezione.
ICustomTypeDescriptor
- L'implementazione di questa interfaccia in una classe sostituisce totalmente le proprietà native di una classe e li sostituisce con i PropertyDescriptors restituiti da ICustomTypeDescriptor.GetProperties()
TypeDescriptionProvider
- utilizzato per estendere sulle proprietà esistenti di una classe
- Un TypeDescriptionProvider viene aggiunto a una classe attraverso un attributo TypeDescriptionProvider
- Il GetTypeDescriptor() metodo TypeDescriptionProvider restituisce un ICustomTypeDescriptor essere allegato alle proprietà esistenti del tipo
- Un PropertyGrid mostrerà sia le proprietà della classe trovata attraverso riflessione, e le proprietà aggiunti alla classe attraverso il TypeDescriptionProvider
TypeConverter
- converte tra tipi
- In termini di usare PropetyGrid per convertire tra tipi complessi e tipi primitivi che possono essere visualizzati/modificati nella griglia delle proprietà.
- I valori metodo GetStandard di un TypeConverter può essere utilizzato anche per visualizzare un elenco di possibili valori nella PropertyGrid
UITypeEditor
- Definisce un editor personalizzato per manipolare una proprietà di un complesso genere.
- Associato a una proprietà tramite un attributo.
Quindi ICustomTypeDescriptor e un provider TypeDescription vengono utilizzati per aggiungere/modificare/sostituire intere proprietà degli oggetti. TypeConverter e UITypeEditor vengono applicati alle singole proprietà e controllano il modo in cui queste specifiche proprietà sono interfacciate.