WinForm实现为ComboBox绑定数据源并提供下拉提示功能
程序员文章站
2024-02-19 08:13:58
本文实例展示了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); } }
代码运行效果如下: