我有两个简单的类:
public class Customer
{
public String CustomerID { get; set; }
public String Forename { get; set; }
public String Surname { get; set; }
}
并且
public class Order
{
public String OrderID { get; set; }
public Decimal Value { get; set; }
public Customer OrderedBy { get; set; }
}
我现在创建了一个客户对象列表:
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" });
我有一个组合框,将数据源设置为我的客户列表,并将DisplayMember设置为客户对象的Forename属性:
comboBox1.DisplayMember = "Forename";
comboBox1.DataSource = customers;
结果是一个有两项“John”和“Jeremy”的组合框,到目前为止我不太困惑。
但是,我想要做的是根据从Combobox选择设置Order实例的“OrderedBy”属性 - 复杂类型可以像这样绑定到ComboBox吗?
我已经尝试过了,但似乎没有更新Order实例的OrderedBy属性:
Order myOrder = new Order();
comboBox1.DataBindings.Add("SelectedItem", myOrder, "OrderedBy");
我不知道我想做的事情是否可行,或者它是否超出了WinForms中数据绑定的能力范围。
如果可能的话,我想避免在ComboBox的事件处理程序上更新我的Order对象,并仅使用数据绑定。