c# .net properties propertygrid

C#.Net 4.5 PropertyGrid: cómo ocultar las propiedades



properties (3)

El problema es simple (¡y espero que esto tenga una solución simple!): Quiero ocultar (navegable (falso)) la propiedad "Elemento" (en mi objeto PropertyGrid) cuando es cero.

public class Question { ... public int Element { get; set; } }



La forma más fácil de ocultar una propiedad en PropertGrid y en un control personalizado para mí es esta:

public class Question { ... [Browsable(false)] public int Element { get; set; } }


Lo que podría hacer es reutilizar la clase DynamicTypeDescriptor descrita en mi respuesta a esta pregunta aquí en SO: PropertyGrid Browsable no se encuentra para la propiedad creada del marco de entidad, ¿cómo encontrarlo?

como este por ejemplo:

public Form1() { InitializeComponent(); DynamicTypeDescriptor dt = new DynamicTypeDescriptor(typeof(Question)); Question q = new Question(); // initialize question the way you want if (q.Element == 0) { dt.RemoveProperty("Element"); } propertyGrid1.SelectedObject = dt.FromComponent(q); }