当前位置: 移动技术网 > IT编程>开发语言>c# > WinForm实现为ComboBox绑定数据源并提供下拉提示功能

WinForm实现为ComboBox绑定数据源并提供下拉提示功能

2019年07月18日  | 移动技术网IT编程  | 我要评论

本文实例展示了winform实现为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);
  }
}

代码运行效果如下:

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网