2013-06-09 6 views
2

PropertyDescriptor est une classe abstraite à partir de laquelle les descripteurs de propriété personnalisée peuvent hériter. La classe possède une propriété IsBrowsable, qui, selon MSDN:Est-ce que PropertyDescriptor.IsBrowsable est incompatible avec l'attribut Browsable() associé?

obtient une valeur qui indique si l'élément est explorable, comme spécifié dans le BrowsableAttribute. (Hérité de MemberDescriptor.)

Ma question est, comment cette propriété liée à la BrowsableAttribute dans PropertyDescriptor.Attributes, pour la propriété associée (définie par exemple en ajoutant le décorateur [Browsable(false)] à la propriété?

Ma confusion se pose du fait que je suis parvenu à remplacer le BrowsableAttribute avec PropertyDescriptor.Attributes un nouveau, ce qui était incompatible avec IsBrowsable.

Mise à jour followin g la réponse de Marc, dois-je garder le BrowsableAttribute en synchronisation avec IsBrowsable? Connaissez-vous des contrôles qui peuvent regarder l'un mais pas l'autre?

+0

J'ai modifié votre titre. S'il vous plaît voir, "[Les questions devraient inclure" tags "dans leurs titres?] (Http://meta.stackexchange.com/questions/19190/)", où le consensus est "non, ils ne devraient pas". –

Répondre

3

L'implémentation PropertyDescriptor par défaut utilise la réflexion et examine BrowsableAttribute. Toutefois, si vous fournissez votre propre implémentation PropertyDescriptor, alors vous êtes responsable - il y a très peu de choses à suivre. Si votre implémentation personnalisée utilise une méthode non liée pour déterminer ce qui est/n'est pas consultable, cela dépend de votre implémentation.

Questions connexes