Je vais essayer d'obtenir une compréhension globale de la façon dont vous utilisez ICustomTypeDescriptor, TypeDescriptionProvider, TypeConverter, et UITypeEditor de changer la façon d'une grille de propriété écrans et des interfaces avec un objet.
Quelqu'un peut-il me dire si cela est juste, ou si j'ai raté tous les grands concepts ou des points? Je suis vraiment juste essayer de comprendre pourquoi et lorsque vous utilisez chaque classe.
ICustomTypeDescriptor
- L'implémentation de cette interface dans une classe totalement remplace le natif de propriétés d'une classe et les remplace par le PropertyDescriptors retourné par ICustomTypeDescriptor.GetProperties()
TypeDescriptionProvider
- Utilisé pour étendre sur les propriétés d'une classe
- Un TypeDescriptionProvider est ajouté à une classe par le biais d'un attribut TypeDescriptionProvider
- Le GetTypeDescriptor() la méthode de la TypeDescriptionProvider retourne un ICustomTypeDescriptor pour être annexé à l'existant propriétés du type.
- Une grille des propriétés affiche à la fois les propriétés de la classe a trouvé par le biais de la Réflexion, et les propriétés ajoutées à la classe par le biais de la TypeDescriptionProvider
TypeConverter
- Conversion entre les types de
- En termes d'utilisation d'un PropetyGrid utilisé pour la conversion entre les types complexes et les types primitifs qui peuvent être affichés et modifiés dans la grille des propriétés.
- Le GetStandard valeurs de la méthode de l'TypeConverter peut également être utilisé pour afficher une liste de valeurs possibles dans la grille des propriétés
UITypeEditor
- Définit un éditeur personnalisé pour manipuler une propriété d'un type complexe.
- Associé à une propriété par le biais d'un attribut.
Donc ICustomTypeDescriptor un TypeDescription fournisseur sont utilisés pour ajouter/modifier/remplacer l'ensemble des propriétés des objets. TypeConverter et UITypeEditor sont appliqués aux propriétés individuelles et de contrôler la manière dont ces propriétés spécifiques sont interfacés avec.