Итак, у меня есть что-то вроде следующей структуры данных (конструкторы опущены)
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, где каждая строка представляет собой список Parent from Parent. Каждая строка должна иметь два столбца: текстовое поле с именем родителя и DataGridViewComboBoxColumn, содержащий дочерние элементы этого родителя, из которого пользователь может выбрать любимого дочернего элемента родителя.
Полагаю, я мог бы сделать все это вручную, но я бы хотел сделать все это с более или менее стандартным связыванием данных. Достаточно просто привязать DataGridView к списку родителей и достаточно просто привязать выбранного потомка к свойству FavoriteChild.
Часть, которая доставляет мне трудности, заключается в том, что столбец Combo Box выглядит так, как будто он хочет связать с одним источником данных для all содержимого поля со списком во всех строках. Мне бы хотелось, чтобы каждый экземпляр поля со списком связывался со списком детей каждого родителя.
Я довольно новичок в C # / Windows Forms, поэтому я вполне могу упустить что-то очевидное. Или это может быть так: «Вы не можете добраться отсюда».
Не так уж сложно составить отдельный список всех детей и отфильтровать его по родителям; Я изучаю эту возможность прямо сейчас. Это возможно или есть лучший способ?