Winforms Ein ComboBox SelectedItem an eine Objekteigenschaft binden

Ich habe zwei einfache Klassen:

public class Customer
{
    public String CustomerID { get; set; }
    public String Forename { get; set; }
    public String Surname { get; set; }
}

un

public class Order
{
    public String OrderID { get; set; }
    public Decimal Value { get; set; }
    public Customer OrderedBy { get; set; }
}

Ich erstelle dann eine Liste mit Kundenobjekten:

List<Customer> customers = new List<Customer>();
customers.Add(new Customer() { CustomerID = "1", Forename = "John", Surname = "Smith"});
customers.Add(new Customer() { CustomerID = "2", Forename = "Jeremy", Surname = "Smith" });

Und ich habe ein Kombinationsfeld, für das ich die Datenquelle als meine Kundenliste und das DisplayMember als die Eigenschaft "Forename" des Kundenobjekts festgelegt habe:

comboBox1.DisplayMember = "Forename";
comboBox1.DataSource = customers;

Und das Ergebnis ist ein Kombinationsfeld mit zwei Elementen, "John" und "Jeremy". Bis jetzt bin ich nicht zu verwirrt.

Was ich aber tun möchte, ist das Setzen der "OrderedBy" -Eigenschaft einer Order-Instanz, basierend auf der Auswahl aus der Combobox - Können komplexe Typen an ComboBoxen wie diese gebunden werden?

Ich habe es versucht, aber es scheint nicht die OrderedBy-Eigenschaft der Order-Instanz zu aktualisieren:

Order myOrder = new Order();
comboBox1.DataBindings.Add("SelectedItem", myOrder, "OrderedBy");

Ich weiß nicht, ob das, was ich versuche, möglich ist oder ob es über die Möglichkeiten der Datenbindung in WinForms hinausgeht.

Ich möchte vermeiden, dass mein Bestellobjekt als Teil eines Ereignishandlers in der ComboBox aktualisiert werden muss, und wenn möglich nur die Datenbindung verwenden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage