软件编程
位置:首页>> 软件编程>> C#编程>> WinForm实现为ComboBox绑定数据源并提供下拉提示功能

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

作者:shichen2014  发布时间:2021-12-16 11:00:38 

标签:WinForm,ComboBox

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

代码运行效果如下:

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com