2009/10/17(Sat) 10:39:22 編集(投稿者)
ICustomTypeDescriptor やら TypeDescriptionProvider やらを実装するのが正道でしょうかね。
相当面倒ですけど。
すっごく単純にやるなら、MSDN のサンプルで言うところの FileNameConverter の
GetStandardValues メソッド内の string[] を、FileNameConverter の静的フィールド
に配置するようにして、これを変更できるようにすることです。
// ついでに配列じゃ面倒なので List<string> に変更
static List<string> parameters;
static FileNameConverter() {
parameters = new List<string>();
parameters.AddRange(new string[] { "新規ファイル", "File1", "Document1" });
}
public static void AddParameter(string parameter) {
parameters.Add(parameter);
}
// GetStandardValues でこの parameters からStandardValuesCollection を生成。
この方法だと、[TypeConverter(typeof(FileNameConverter))] 属性を付けた
プロパティ全てのドロップダウンに追加されるようになるのが難点ですが。