データベースから取得したオブジェクトのリストにバインドされたSystem.Windows.Forms.ComboBoxから派生コントロールを作成したいと思います。他の開発者は、必要がない限り、データソースやバインディングについて心配することなく、このコントロールをフォームにドロップすることができます。
コンボボックスを拡張してから、コンストラクターでDataSource、DisplayMember、およびValueMemberを設定しようとしました。
public class CustomComboBox : ComboBox
{
public CustomComboBox()
{
this.DataSource = MyDAL.GetItems(); // Returns List<MyItem>
this.DisplayMember = "Name";
this.ValueMember = "ItemID";
}
}
実行すると機能しますが、フォームに追加するとVisualStudioで多くのエラーが発生します。私が得るエラーは次のとおりです。
「プロパティ'Items'のコード生成に失敗しました。エラーは次のとおりです:'オブジェクト参照がオブジェクトのインスタンスに設定されていません」
これを実現する正しい方法は何ですか(C#、Winforms、.NET 2.0以降)?