我喜欢PropertyGrid,至少是它背后的概念 - 利用反射和属性来编辑对象,而不需要编写太多UI代码。
然而,我的兴奋很快就消失了,WinForms默认的PropertyGrid非常糟糕。虽然对于编辑简单的对象等方面还可以,但只有到此为止。
你会怎么做? 是否有一个优雅的解决方案至少解决前三个问题? 是否有另一种属性网格?最好是免费且没有PInvokes?
然而,我的兴奋很快就消失了,WinForms默认的PropertyGrid非常糟糕。虽然对于编辑简单的对象等方面还可以,但只有到此为止。
- 它不会为类型为“Object”的动态属性显示适当的UITypeEditors。
- 一旦您的对象包含集合,您可能能够使用所谓的CollectionEditor进行编辑。但是,它不会触发PropertyValueChanged事件。因此,一旦您需要添加撤销功能,您就会陷入困境。
- 我仍然没有找到一种优雅的方法来为CollectionEditor添加验证。
- 如果选择了多个对象,则实现撤销也会出现问题,因为在这种情况下,PropertyValueChanged事件参数ChangedItem为空。
你会怎么做? 是否有一个优雅的解决方案至少解决前三个问题? 是否有另一种属性网格?最好是免费且没有PInvokes?