Itemsプロパティでカスタムコントロールを作成したいとします。Windowsフォームでのジェネリックの使用
を実装するクラスItemColection
を返すことは安全ですか?これは事前に作成されたコントロールでは見られなかったためですか?
これを実装するにはどうすればよいですか?
Itemsプロパティでカスタムコントロールを作成したいとします。Windowsフォームでのジェネリックの使用
を実装するクラスItemColection
を返すことは安全ですか?これは事前に作成されたコントロールでは見られなかったためですか?
これを実装するにはどうすればよいですか?
制御のためのIListから継承されたタイプのプロパティを作成しても問題はありません。しかし、コントロールを構築する場合は、PropertyGridでデザイン時にプロパティを編集可能にする方がよいでしょう。編集可能にするには、CollectionBaseから継承したアイテムの独自のコレクションを作成し、そのタイプのプロパティを作成する必要があります。
この記事をチェックアウト:Creating a Custom Collection for Use in a PropertyGrid
、その後適切な属性を設定することで、設計時に編集可能なあなたのItemsプロパティを作成することを忘れないでください:
[Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public YourItemsCollection Items
{
get { ... }
set { ... }
}
はい、ほとんどすべてを使用できます。フォームは(単なる)クラスです。
例が表示されないのは、主にWinFormsが.NET 1.0テクノロジであるためです。それ以来、ほとんど追加や変更はありません。
そして、あなたは、特定の機能を必要としない限り、単にそれをシンプルに保つ:
public IList<ItemType> ItemsCollection { get ... set ... }
1 - 一般的に、あなたがドンものの」コレクションプロパティにセッターが必要です。 – TrueWill
右にするか、非公開にしてください。私はそれを少し模擬的に残し、質問に物事を読んではいけません。 –