2011-11-30 9 views
0

Itemsプロパティでカスタムコントロールを作成したいとします。Windowsフォームでのジェネリックの使用

を実装するクラスItemColectionを返すことは安全ですか?これは事前に作成されたコントロールでは見られなかったためですか?

これを実装するにはどうすればよいですか?

答えて

0

制御のためのIListから継承されたタイプのプロパティを作成しても問題はありません。しかし、コントロールを構築する場合は、PropertyGridでデザイン時にプロパティを編集可能にする方がよいでしょう。編集可能にするには、CollectionBaseから継承したアイテムの独自のコレクションを作成し、そのタイプのプロパティを作成する必要があります。

この記事をチェックアウト:Creating a Custom Collection for Use in a PropertyGrid

、その後適切な属性を設定することで、設計時に編集可能なあなたのItemsプロパティを作成することを忘れないでください:

[Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
public YourItemsCollection Items 
{ 
    get { ... } 
    set { ... } 
} 
2

はい、ほとんどすべてを使用できます。フォームは(単なる)クラスです。

例が表示されないのは、主にWinFormsが.NET 1.0テクノロジであるためです。それ以来、ほとんど追加や変更はありません。

そして、あなたは、特定の機能を必要としない限り、単にそれをシンプルに保つ:

public IList<ItemType> ItemsCollection { get ... set ... } 
+1

1 - 一般的に、あなたがドンものの」コレクションプロパティにセッターが必要です。 – TrueWill

+0

右にするか、非公開にしてください。私はそれを少し模擬的に残し、質問に物事を読んではいけません。 –

関連する問題