2011-09-16 42 views
1

在PropertyGrid的表單元素的所有屬性,當我將屬性添加到我的類別,一些以粗體顯示。現在
,我知道,這表明它們是該類別中的默認值。我的問題是如何讓所有屬性大膽?
我知道一種可能的方式是改變DefaultValueAttribute屬性,但我想知道是否可以用不同的方式完成:this post暗示我可能不得不使用反射,這在當時對我來說有點神祕:)
預先感謝您C#PropertyGrid中 - 使不加粗

回答

2

對於每個屬性,你可以添加:

private bool ShouldSerialize{PropertyName}() { return false; } 

除此之外,你到通過ICustomTypeDescriptorTypeDescriptionProvider定製PropertyDescriptor實現的境界。

注意,該圖案在許多地方使用,但在某些(XmlSerializer,例如),則需要是public方法。

+0

怎麼樣在這個論壇中留言#9的建議? http://www.xtremedotnettalk.com/showpost.php?p=460034&postcount=9 它似乎是更普遍的 – bks

+0

@bks就是我上面提到的「定製'PropertyDescriptor'」路線當然,你可以做到這一點,但這不是微不足道的 - 尤其是,你需要首先編寫一個菊花鏈式的PropertyDescriptor。 –

+0

我明白了。以及我認爲這會做現在。謝謝! – bks