我想在网格中显示时动态添加属性(例如Browsable(false))。场景是我有一个带有一些公共(public)属性的自定义类。但是,我不希望所有公共(public)属性都显示在UI中。有出路吗?
我尝试使用TypeDescriptor。但是,它仅在类型级别上起作用,而不在属性级别上起作用。我找不到如何在属性级别使用它的帮助。
任何指针将不胜感激。
最佳答案
确实有可能,但我必须承认它是相当晦涩的,而且文献记载不充分。关键是从System.ComponentModel.TypeDescriptionProvider派生您自己的自定义TypeDescriptorProvider。然后,您可以返回自己的TypeDescriptor后代。
我这样做是为了解决有关ASP.NET MVC中ViewModel和元数据的一个相当讨厌的限制,但是您也可以使用它来插入自己的额外元数据。