2013-02-05 42 views
2

顯示屬性文中給出一類這樣的:如何重寫PropertyGrid中

public class SomeClass 
{ 
    public SomeClass() 
    { 
     Name = "Default"; 
     Values = Enumerable.Range(1,3).ToArray(); 
    } 

    public string Name { get; set; } 
    public int[] Values { get; set; } 
} 

類的默認實例出現這樣一個PropertyGrid控制:
PropertyGrid.SelectedObject = new SomeClass();

是可以覆蓋爲Values屬性顯示的文本,以便它顯示類似1, 2, 3而不是Int32[] Array



歡迎提供涉及反射和繼承PropertyGrid控件的解決方案。

回答

2

我認爲你可以一個TypeConverter屬性添加到Values

[TypeConverter(typeof(IntArrayToStringTypeConverter))] 
public int[] Values { get; set; } 

然後根據documentation創建IntArrayToStringTypeConverter。不知道是否已經有一個類型轉換器可以做你想做的。