JBe*_*rer 7 .net c# propertygrid winforms
我喜欢PropertyGrid,至少它背后的概念 - 使用反射和属性来编辑你的对象,而无需编写很多UI代码.
我的兴奋很快消失了,默认的PropertyGrid运输与WinForms完全糟糕.嗯,这对于编辑简单的对象等很好,但就目前而言.
我很快发现自己正在编写黑客来解决这些问题而不是令人满意的结果.
你会怎么做?至少前三个问题是否有优雅的解决方案?有替代的属性网格吗?最好是免费还是没有PInvokes?
很多PropertyGrid优雅来自它的简约.最重要的是,它的设计与Visual Studio相得益彰,我希望它主要用于自定义UITypeEditor和扩展,而不是应用程序代码.
大概你附加的对象是PropertyGrid你自己设计的类?我发现,为了充分利用属性网格,你必须用属性来大量装饰你的类和成员.
您可以在编写自己的子类CollectionEditor(和其他类型的编辑器)并使用该[Editor]属性将它们附加到类成员时感到高兴- 如果您可以将此属性附加到动态属性,则可以强制使用特定编辑器.
我能想到添加验证的唯一方法CollectionEditor是覆盖CreateCollectionForm()方法,返回自己的自定义子类的实例CollectionEditor.CollectionForm.你有可能从这里开始改变事件.
不幸的是,我能做的只是点头并同意关于实现撤销的断言.您可能不得不通过克隆或序列化来"备份"受影响的对象以实现撤消.
我已经看到了内置属性网格控件的替代品,但它们的存在主要是为了提供不同的视觉样式.