トップ回答者
コレクションエディタ内で画面のコントロール名一覧を取得する方法

質問
-
カスタムコントロールのプロパティを、CollectionBaseクラスを継承したクラスにすると
カスタムコントロールのデザイン時プロパティで、コレクションエディタを表示させることが
出来ました。そのコレクションエディタ内のプロパティで画面上に存在するコントロール
の名称一覧を、ドロップダウンで表示させたいです。
CollectionBaseクラスを継承したクラスをはさまずに、カスタムコントロールのプロパティ上
ではTypeConverterAttribute属性を使用し、StringConverterクラスを継承したクラスを適用
させ、デザイン時に画面上に存在するコントロールの名称一覧をドロップダウンで表示させる
ことが出来ました。
CollectionBaseクラスを継承したクラスに定義したプロパティに同じように、TypeConverterAttribute属性
を使用しても、StringConverterクラスを継承したクラスのGetStandardValuesメソッドで入ってくる引数
ITypeDescriptorContextのContainerプロパティがNothingとなってしまいます。
どなたか良い解決方法がお解かりになられる方おりましたら、ご教授願います。
つたない説明書きで申し訳ありませんがよろしくお願いします。
開発環境
VisualStudio2005 .NET 2.0
ASP.NET
回答
-
ということでしたら、ASP.NET AJAX Extentions のソースコードが公開されていますので、
参考にしてみたらいかがでしょうか?
ASP.NET 2.0 AJAX Extensions 1.0 Source Code
すべての返信
-
上記の説明でやりたいことがうまく伝わっていないと思い、説明を追加させていただきます。
と、いうより説明ではなく分かりやすい例があったので紹介します。
ASP.NET for AJAX のUpdatePanelコントロールのプロパティエディタにTriggersプロパティが
あります。TriggersプロパティをクリックするとUpdatePanelTrigger コレクションエディタが表示
されます。UpdatePanelTrigger コレクションエディタのControlIDプロパティをクリックすると
画面上のコントロール名一覧がドロップダウンで表示されます。まさにこのまんまの機能を
カスタムコントロールで実現したいと考えております。
今現在もいろいろ調べてはいるのですが、全く解決しておりません。
どうか皆様のお力をお貸しください。よろしくお願いします。
-
ということでしたら、ASP.NET AJAX Extentions のソースコードが公開されていますので、
参考にしてみたらいかがでしょうか?
ASP.NET 2.0 AJAX Extensions 1.0 Source Code