2009-09-01 9 views
0

だから、私は何をしたいのか、次のデータ構造のようなもの(コンストラクタは省略)のDataGridView

class Child { 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

class Parent { 
    public string Name { get; set; } 
    public List <Child> Children { get; private set; } // never null; list never empty 
    public Child FavoriteChild { get; set; }    // never null; always a reference to a Child in Children 
} 

List <Parent> Parents; 

を持つ各行が親リストから親であるのDataGridViewを示しています。各行には、親の名前を示すテキストボックスと、その親の子を含むDataGridViewComboBoxColumnの2つの列が必要です。そこから、ユーザーは親のお気に入りの子を選択できます。

私はすべてを手動で行うことができたと思いますが、これ以上の標準のデータバインディングですべてをやりたいと思います。 DataGridViewを親のリストにバインドするのは簡単で、選択した子をFavoriteChildプロパティにバインドするのは簡単です。

私に困難を与えている部分は、コンボボックスの列には、すべての行にすべてコンボボックスの内容についてデータソースにバインドしたいように見えるということです。私はコンボボックスの各インスタンスを各親の子のリストにバインドしたいと思います。

私はかなりC#/ Windowsフォームが新しくなっているので、明らかに何か不足している可能性があります。それとも、「あなたはここからそこに行くことはできません」。

すべての子を別々のリストにして親でフィルタするのは難しくありません。私はその可能性を今見ている。これは実現可能か、それとも良い方法がありますか?

+0

親はお気に入りの子供を持ってはいけません;-) – baruch

答えて

0

答えはthis questionのように見えますが、正しい軌道に乗せてください。私はRowsAddedイベントにハンドラを添付し、コンボボックスのデータソースを手動で設定しました。