2012-03-12 2 views
4

別のクラスを含むPropertyGridに表示するクラスを作成しました。私はこのクラスを拡張可能にしたいので、[TypeConverter(typeof(ExpandableObjectConverter))]を追加しようとしましたが、うまくいかないようです。ここに私が試した簡単な例です:プロパティグリッドに表示されたときPropertyGrid:ExpandableObjectConverterの問題

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 

     this.propertyGrid1.SelectedObject = new Class1(); 
    } 
} 

public class Class1 
{ 
    string name; 

    public string Name 
    { 
     get { return this.name; } 
     set { this.name = value; } 
    } 

    Class2 class2; 

    public Class2 Class2 
    { 
     get { return this.class2; } 
     set { this.class2 = value; } 
    } 
} 

[TypeConverter(typeof(ExpandableObjectConverter))] 
public class Class2 
{ 
    string stuff = "none"; 

    public string Stuff 
    { 
     get { return this.stuff; } 
     set { this.stuff = value; } 
    } 
} 

Class1インスタンスのClass2プロパティは拡張可能ではありません。なぜこれが機能していないのかについての考えはありますか?

ありがとうございます!

答えて

7

Class2タイプのプロパティはnullであるため、拡張されていません。あなたの財産をインスタンス化するだけで、すべてがうまくいくでしょう:

Class2 class2 = new Class2(); 
+4

(恥知らずの中にロックする)...ありがとう。 – john

関連する問題