在Windows窗体数据绑定中,DisplayMember用于显示数据项的特定属性。如果您想要显示自定义类的子属性,可以使用DataBinding的FormatEvent事件来实现。
以下是一个示例代码,演示如何在Windows窗体中使用DataBinding的FormatEvent事件来显示自定义类的子属性:
public class Person
{
public string Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string City { get; set; }
}
private void Form1_Load(object sender, EventArgs e)
{
var persons = new List<Person>
{
new Person { Name = "John", Address = new Address { City = "New York" } },
new Person { Name = "Jane", Address = new Address { City = "Los Angeles" } }
};
comboBox1.DataSource = persons;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Address.City";
comboBox1.Format += ComboBox1_Format;
}
private void ComboBox1_Format(object sender, ListControlConvertEventArgs e)
{
var person = (Person)e.ListItem;
e.Value = $"{person.Name}, {person.Address.City}";
}
在上面的示例中,我们有一个Person类,其中包含一个名为Address的子属性。我们将ComboBox的DataSource设置为Person对象列表,并将DisplayMember设置为Name属性。然后,我们将ValueMember设置为Address.City子属性。最后,我们使用FormatEvent事件来格式化显示文本,以便在ComboBox中显示子属性。
总之,如果您想要在Windows窗体数据绑定中显示自定义类的子属性,可以使用DataBinding的FormatEvent事件来实现。
领取专属 10元无门槛券
手把手带您无忧上云