c# winforms propertygrid

c# - Nombres de propiedades personalizadas en PropertyGrid?



winforms (2)

Querrás tener el atributo de CategoryAttribute establecido en "Archivo" para AMBAS propiedades:

[Category("File")] public string FilePath { get; set;} [Category("File")] public int FileSize { get; set;}

Recomiendo leer " Aprovechar al máximo el control de cuadrícula de propiedades de .NET " para obtener otras ideas que puede utilizar para organizar sus propiedades, incluida la adición de descripciones.

Tengo una clase que uso en un PropertyGrid . Encontré que al establecer CategoryAttribute en cada propiedad, crea una nueva categoría para cada artículo, obviamente. Esto configura mi cuadrícula de propiedades para tener un [+] para cada elemento con mi nombre personalizado, y este no es el comportamiento que estoy tratando de lograr.

En Visual Studio, si hace clic en un elemento en el Explorador de soluciones, por ejemplo, un ensamblaje, tiene cero nodos de árbol y solo una lista de propiedades perfectamente nombradas, es decir, cualquier cadena puede identificar una propiedad, no solo el nombre del objeto. Así que en lugar de tener esto:

[+ Ruta del archivo]
FilePath | valor de propiedad
[+ Tamaño del archivo]
Tamaño de archivo | 0 KB

Estoy buscando esto:

[+ Archivo]
Ruta del archivo | valor
Tamaño del archivo | 0 KB

O incluso lo anterior sin el nodo inicial [+]. Ingresé a través del espacio de nombres System.ComponentModel buscando un atributo aplicable pero no puedo encontrar uno.

¿Cómo puedo lograr este efecto? Debe ser posible, Visual Studio lo hace y creo que son el mismo componente, no uno derivado y extendido.


Use DisplayNameAttribute para cambiar el texto que se muestra (para que sea más legible), DescriptionAttribute para agregar texto de ayuda a la propiedad y CategoryAttribute para agrupar las propiedades.

using System.ComponentModel; [Category("Test")] [DisplayName("Test Property")] [Description("This is the description that shows up")] public string TestProperty {get;set;}