【发布时间】:2011-10-17 03:08:11
【问题描述】:
我创建了以下类来模拟一个人:
namespace DataBindingTest
{
public enum colorEnum
{
Red,
Green,
Yellow,
Blue,
}
class Person
{
private string _Name;
private int _Age;
private colorEnum _FavoriteColor;
private bool _HasAllergies;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public int Age
{
get { return _Age; }
set { _Age = value; }
}
public colorEnum FavoriteColor
{
get { return _FavoriteColor; }
set { _FavoriteColor = value; }
}
public bool HasAllergies
{
get { return _HasAllergies; }
set { _HasAllergies = value; }
}
}
}
在我的主窗体上,我有一个组合框,它将绑定到 Person 对象数组。当我从这个组合框中选择一个人时,我想显示他们的年龄(在 NumericUpDown 控件中)、他们是否过敏(作为复选框)和他们最喜欢的颜色(在另一个组合框中,将 DropDownStyle 设置为 DropDownList)。为此,我有:
- 在我的表单中添加了一个组合框 (comboBoxPeople)、一个 NumericUpDown 控件、一个复选框和另一个组合框 (comboBoxFavoriteColor)。
- 从上面声明的我的 Person 类创建了一个新的 DataSource
- 在我的表单中添加了一个 BindingSource
- 将 BindingSource 的 DataSource 属性设置为 #2 中定义的 DataSource。
- 将 comboBoxPeople 的 DataSource 设置为 BindingSource,将 DisplayMember 设置为 BindingSource 的 Name 属性
- 我已将 BindingSource 的 Age 属性绑定到 NumericUpDown 控件,并将 BindingSource 的 HasAllergies 属性绑定到 checkBox 控件
- 在我的构造函数中,我创建了一个包含 3 个 Person 对象的数组,定义了它们的所有属性,然后将 BindingSource 的 DataSource 属性设置为这个数组
到目前为止,一切都按预期进行。现在我想在 comboBoxFavoriteColor 中显示该人最喜欢的颜色(即 BindingSource 的 FavoriteColor 属性)。我已将 DropDownStyle 设置为 DropDownList,因为 FavoriteColor 是一个枚举。但是,我不清楚我应该如何绑定此组合框以使其 1) 包含 FavoriteColor 枚举值和 2) 当我从 comboBoxPeople 中选择一个人时,将适当的颜色设置为 SelectedItem。谁能给我一个想法?非常感谢!
【问题讨论】:
标签: .net winforms data-binding combobox bindingsource