我试图以一种通用的方式显示对象数据成员。我从使用PropertyGrid开始,就简单属性而言,它满足了我的需求。但是,它不允许用户向下钻取数据成员。它可以浏览收藏集,但界面有点尴尬。

我基本上是在寻找具有QuickWatch功能的产品。有人知道可以进行深入分析的任何库吗?

最佳答案

您当然可以在PropertyGrid中向下钻取属性。这是一个广泛的主题,但是也许您的属性只需要在其上附加ExpandableObjectConverter?或者,如果您要进一步研究细节,则附加的TypeConverter需要重写GetPropertiesSupported和GetProperties方法。

还有另一种方法可以告诉网格在属性下显示哪些属性。您可以实现ICustomTypeDescriptor并返回自己的PropertyDescriptor。但是通常这是针对更复杂的场景。

让我知道您是否需要任何具体细节。

更新:注释中的,您询问有关显示词典的问题。如果您想将字典的每个条目都视为子属性,那么这就是上面提到的复杂方案。您的TypeConverter或自定义TypeDescriptor将必须为每个条目生成一个PropertyDescriptor。它的名称将是键,其值将是...属性值。
如果您不熟悉PropertyGrid,我建议您阅读很多有关它的内容,因为它可能非常复杂,您将在此处找到一个很好的资源列表:www.propertygridresourcelist.com

关于c# - 需要具有向下钻取的PropertyGrid,类似于QuickWatch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/229700/

10-11 09:03