首页 > 编程 > C# > 正文

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

2020-01-24 02:35:34
字体:
来源:转载
供稿:网友

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

代码运行效果如下:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表