Master-Detail Binding
We've seen binding to a single object. We've seen binding to a single list of objects. Another very popular thing to do is to bind to more than one list, especially related lists. For example, if you're showing your users a list of customers and then, when they select one, you'd like to show that customer's related orders, you'll want master-detail binding.
Master-detail binding is a form of filtering, where the selection in the master list (e.g., customer 452) sets the filtering parameters for the associated detail data (e.g., orders for customer 452).
In our discussion thus far, we don't have customers and orders, but we do have families and people, which we could further formalize as shown in Example 7-44.
Example 7-44. Master-detail data for binding
public class Person { string name; public string Name { get { return name; } set { name = value; } } int age; public int Age { get { return age; } set { age = value; } } } public class People : ObservableCollection<Person> {} public class Family { string familyName; public string FamilyName { get { return familyName; } set { familyName = value; } } People members; public People Members { get { return members; } set { members = value; } } } public class Families : ObservableCollection<Family> {}
In Example 7-44, we've got
our familiar Person
class with
Name
and Age
properties, collected into a familiar
People
collection. Further, we have a
Family
class with a FamilyName
property and a Members
property of type People ...
Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.