Comment filtrer les propriétés visibles dans l'éditeur de collection d'une grille de propriétés (formulaires Win)?
-
28-10-2019 - |
Question
J'ai une grille de propriétés qui pointe vers un objet pour voir ses propriétés.Je filtre en procédant comme suit:
propertyGrid1.BrowsableAttributes = new System.ComponentModel.AttributeCollection(new Attribute[]
{
new CategoryAttribute("All")
});
Mon objet a une collection d'objets Control.Lorsque je visualise juste l'objet, toutes les propriétés qui n'ont pas [Category ("All")] sont filtrées.Jusqu'ici tout va bien.Cependant, lorsque je vais dans l'éditeur de collections, cet éditeur affiche les propriétés qui ne sont pas marquées avec [Category ("All")].Ceci n'est pas souhaitable.Comment résoudre ce problème?
La solution
J'ai peur que vous deviez sous-classer l'éditeur de collection pour faire cela ...
cet article décrit commentpour accéder à la grille de propriétés sur le formulaire de l'éditeur de collection (voir le remplacement de CreateCollectionForm
dans l'article)
au lieu d'enregistrer des gestionnaires d'événements, vous pouvez y configurer votre restriction pour les attributs navigables ...