none
コレクションエディタ内で画面のコントロール名一覧を取得する方法 RRS feed

  • 質問

  •  

    カスタムコントロールのプロパティを、CollectionBaseクラスを継承したクラスにすると

    カスタムコントロールのデザイン時プロパティで、コレクションエディタを表示させることが

    出来ました。そのコレクションエディタ内のプロパティで画面上に存在するコントロール

    の名称一覧を、ドロップダウンで表示させたいです。

     

    CollectionBaseクラスを継承したクラスをはさまずに、カスタムコントロールのプロパティ上

    ではTypeConverterAttribute属性を使用し、StringConverterクラスを継承したクラスを適用

    させ、デザイン時に画面上に存在するコントロールの名称一覧をドロップダウンで表示させる

    ことが出来ました。

     

    CollectionBaseクラスを継承したクラスに定義したプロパティに同じように、TypeConverterAttribute属性

    を使用しても、StringConverterクラスを継承したクラスのGetStandardValuesメソッドで入ってくる引数

    ITypeDescriptorContextのContainerプロパティがNothingとなってしまいます。

     

    どなたか良い解決方法がお解かりになられる方おりましたら、ご教授願います。

    つたない説明書きで申し訳ありませんがよろしくお願いします。

     

    開発環境

     VisualStudio2005 .NET 2.0

      ASP.NET
    2007年8月24日 3:02

回答

すべての返信

  • 上記の説明でやりたいことがうまく伝わっていないと思い、説明を追加させていただきます。

    と、いうより説明ではなく分かりやすい例があったので紹介します。

     

    ASP.NET for AJAX のUpdatePanelコントロールのプロパティエディタにTriggersプロパティが

    あります。TriggersプロパティをクリックするとUpdatePanelTrigger コレクションエディタが表示

    されます。UpdatePanelTrigger コレクションエディタのControlIDプロパティをクリックすると

    画面上のコントロール名一覧がドロップダウンで表示されます。まさにこのまんまの機能を

    カスタムコントロールで実現したいと考えております。

     

    今現在もいろいろ調べてはいるのですが、全く解決しておりません。

    どうか皆様のお力をお貸しください。よろしくお願いします。

    2007年8月29日 9:44
  • ということでしたら、ASP.NET AJAX Extentions のソースコードが公開されていますので、

    参考にしてみたらいかがでしょうか?

     

    ASP.NET 2.0 AJAX Extensions 1.0 Source Code

    http://www.microsoft.com/downloads/details.aspx?FamilyId=EF2C1ACC-051A-4FE6-AD72-F3BED8623B43&displaylang=en

     

     

     

    2007年8月29日 11:55
  • chack-Akira Inoueさん返信ありがとうございます。

     

    ASP.NET AJAX Extensions のソースコードが公開されているとは知りませんでした。

    C# が分からない自分にとってはかなり四苦八苦しそうですが、勉強がてら解読してみ

    ようかと思います。また、分からないことがありましたらよろしくお願いします。

     

    本当にありがとうございました。

    2007年8月30日 1:32