Question

Si j'ai une classe qui implémente ICustomTypeDescriptor Je peux passer outre les GetProperties () méthode pour remplacer complètement toutes les propriétés de la classe avec mon habitude propertyDescriptors .

Mais si je veux garder les propriétés existantes de la classe et ajouter des propriétés supplémentaires à la classe? Est-il possible de retourner un ensemble de descripteurs de propriété personnalisés qui sont ajoutés aux propriétés de classe existantes?

Par exemple, je veux que l'utilisateur soit en mesure de définir des propriétés personnalisées dans mon programme qui sera affiché dans une grille de la propriété. Les valeurs des propriétés personnalisées seront stockées dans un Dictionnaire (clé de chaîne, la valeur de l'objet) collection, et je veux ajouter propertyDescriptors qui va lire et écrire des valeurs trop et de cette collection basée sur les valeurs clés.

Je ne pense pas IExtenderProvider fonctionnerait car il ajoute que les propriétés d'une classe à l'autre. Mais je dois pouvoir ajouter et supprimer les propriétés dynamiquement au moment de l'exécution. Puis-je avoir une classe IExtenderProvider aussi des outils ICustomTypeDescriptor afin que les propriétés qu'elle ajoute peuvent être cernées lors de l'exécution?

Était-ce utile?

La solution

devrait être en mesure d'en ajoutant simplement à la collection actuelle:

    public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
    {
        PropertyDescriptorCollection cols = base.GetProperties(attributes);
        cols.Add(); // Add your custom property descriptor here
        return cols;
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top