Me encanta PropertyGrid, bueno, al menos el concepto subyacente: use la reflexión y los atributos para editar sus objetos sin escribir mucho código de UI.Alternativas PropertyGrid
Mi entusiasmo se agotó bastante rápido, el envío predeterminado de PropertyGrid con WinForms es una mierda. Bueno, está bien para editar objetos simples, pero eso es todo.
- No muestra los UITypeEditors apropiados para las propiedades dinámicas que tienen el tipo "Objeto".
- Tan pronto como sus objetos contengan colecciones, es posible que pueda editarlos con el denominado Editor de colecciones. Sin embargo, no activará el evento PropertyValueChanged. Entonces, una vez que necesitas agregar la funcionalidad de deshacer, estás jodido.
- Y todavía no he encontrado una forma elegante de agregar validación para CollectionEditor.
- También es problemático implementar deshacer si tiene varios objetos seleccionados, porque en ese caso el argumento PropertyValueChanged args ChangedItem es nulo.
Pronto me encontré escribiendo hacks para abordar esos problemas con resultados poco agradables.
¿Qué harías? ¿Existe una solución elegante para al menos los primeros tres problemas? ¿Hay una opción propertygrid? Preferiblemente gratis & sin PInvokes?
En cuanto a propertychanged para colecciones. Me preocuparía si algo cambia la referencia de la instancia de colección. Piénsalo. – leppie