1. 将集合数据绑定到ListBox和ComboBox控件,界面上显示某个属性的内容

//自定义了Person类(有Name,Age,Heigth等属性)

List<Person> persons=new List<Person>();
persons.Add(new Person("WuMiao",18,175));
persons.Add(new Person("YeXinYv",20,170));
persons.Add(new Person("WuDong",18,175));

//ListBox控件实现
lb_PersonsList.DataSource=persons;        //指定数据源
lb_PersonList.DisplayMember="Name";    //界面显示的是人的名字

//ComboBox控件实现  (与ListBox的实现类似)
cmb_PersonList.DataSource=persons;
cmb_PersonList.DisplayMember="Name";

 

2. ComboBox绑定数据源并提供下拉提示功能

/// <summary>
/// 为ComboBox绑定数据源并提供下拉提示
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="combox">ComboBox</param>
/// <param name="list">数据源</param>
/// <param name="displayMember">显示字段</param>
/// <param name="valueMember">隐式字段</param>
/// <param name="displayText">下拉提示文字</param>
public static void Bind<T>(this ComboBox combox, IList<T> list, string displayMember, string valueMember, string displayText)
{
  AddItem(list, displayMember, displayText);
  combox.DataSource = list;
  combox.DisplayMember = displayMember;
  if (!string.IsNullOrEmpty(valueMember))
 combox.ValueMember = valueMember;
}
private static void AddItem<T>(IList<T> list, string displayMember, string displayText)
{
  Object _obj = Activator.CreateInstance<T>();
  Type _type = _obj.GetType();
  if (!string.IsNullOrEmpty(displayMember))
  {
 PropertyInfo _displayProperty = _type.GetProperty(displayMember);
 _displayProperty.SetValue(_obj, displayText, null);
  }
  list.Insert(0, (T)_obj);
}

使用方法

List<CommonEntity> Sources = new List<CommonEntity>();
private void WinComboBoxToolV2Test_Load(object sender, EventArgs e)
{
  CreateBindSource(5);
  comboBox1.Bind(Sources, "Name", "Age", "--请选择--");
}
 
private void CreateBindSource(int count)
{
  for (int i = 0; i < count; i++)
  {
 CommonEntity _entity = new CommonEntity();
 _entity.Age = i;
 _entity.Name = string.Format("Yan{0}", i);
 Sources.Add(_entity);
  }
}
具体的使用操作代码

相关文章:

  • 2021-08-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-19
  • 2022-12-23
  • 2021-10-29
相关资源
相似解决方案