- 819 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 03:45:21 ]
- TypeConverter を継承して、好き勝手な property を登録するという方法でやてみました。
その結果、TypeConverter を継承した MyPropConverter をつくり、 [TypeConverter(typeof(MyPropConverter))] class Hoge{} という空っぽの Hoge クラスのインスタンスを PropertyGrid.SelectedObject に指定することにより、 好きなだけ任意のプロパティ項目を表示できるようになりました。しかし... たとえば オブジェクトAを選択すると、設定テキストAの内容をつかってプロパティを表示、 オブジェクトBを選択すると、設定テキストBの内容をつかってプロパティを表示、 オブジェクトCを選択すると ... するというようにしたいのですが、 すると、いま選択されているのが AなのかBなのか、なんなのかを MyPropConverterが知る必要があります。 (オブジェクトの種類によって GetProperties の戻り値を帰る必要があるため) これはどのように指定すれば良いのでしょう? 理想をいえば、MyTypeConverter のコンストラクタでそのまま設定テキストを渡して解析させ、 結果に応じて GetProperties の戻り値をかえたいです。しかしそのようにすると、 propertyGrid.SelectedIndex = new Hoge(); の行で実行時エラーになります。問題はそもそも MyPropConverterのコンストラクタの呼び出し元はどこなのか?ということですが....
|

|