Winforms Vinculando um ComboBox SelectedItem a uma propriedade de objeto
Eu tenho duas classes simples:
public class Customer
{
public String CustomerID { get; set; }
public String Forename { get; set; }
public String Surname { get; set; }
}
e
public class Order
{
public String OrderID { get; set; }
public Decimal Value { get; set; }
public Customer OrderedBy { get; set; }
}
Em seguida, crio uma lista de objetos Customer:
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" });
E eu tenho uma caixa de combinação, na qual defino a fonte de dados como minha lista de clientes e o DisplayMember como a propriedade Forename do objeto Customer:
comboBox1.DisplayMember = "Forename";
comboBox1.DataSource = customers;
E o resultado é uma caixa de combinação com dois itens, "John" e "Jeremy". Até agora não estou muito confuso.
O que eu gostaria de poder fazer, no entanto, é definir a propriedade "OrderedBy" de uma instância de Order, com base na seleção da caixa de combinação - tipos complexos podem ser vinculados a ComboBoxes como este?
Eu tentei isso, mas parece não estar atualizando a propriedade OrderedBy da instância Order:
Order myOrder = new Order();
comboBox1.DataBindings.Add("SelectedItem", myOrder, "OrderedBy");
Não sei se o que estou tentando fazer é possível ou se está além dos recursos do Data Binding no WinForms.
Gostaria de evitar a necessidade de atualizar meu objeto Order como parte de um manipulador de eventos na ComboBox e usar apenas a Ligação de Dados, se possível.