WinForm实现为ComboBox绑定数据源并提供下拉提示功能
作者:shichen2014 时间:2021-12-16 11:00:38
本文实例展示了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
投稿
猜你喜欢
IDEA使用SequenceDiagram插件绘制时序图的方法
2023-07-03 11:20:07
解决Android Studio突然不显示logcat日志的问题
2021-06-09 01:13:13
C#中TransactionScope的使用小结
2022-02-15 01:53:08
IDEA2020.2.3中创建JavaWeb工程的完整步骤记录
2022-03-15 05:16:02
JavaWeb购物车项目开发实战指南
2022-05-30 19:32:17
android图片处理之让图片一直匀速旋转
2021-07-13 02:33:38
使用maven创建web项目的方法步骤(图文)
2022-12-08 04:36:41
java 使用HttpURLConnection发送数据简单实例
2023-12-12 01:44:00
java实现简单控制台通讯录
2023-05-24 14:33:20
IDEA启动tomcat控制台中文乱码问题的解决方法(100%有效)
2021-06-25 10:45:23
OpenCV实现直线拟合
2023-06-22 15:22:37
Android 听筒模式的具体实现实例
2023-09-24 03:13:01
Android自定义有限制区域图例角度自识别涂鸦工具类中篇
2021-06-16 16:21:46
Mybatis源码解析之事务管理
2023-01-14 10:59:34
Java面试基础之TCP连接以及其优化
2023-10-02 17:43:51
SpringBoot请求发送与信息响应匹配实现方法介绍
2021-07-08 22:05:27
Spring AOP原理及动态代理
2023-06-19 18:59:56
c#只读字段和常量的区别,以及静态构造函数的使用实例
2023-10-31 09:52:20
Java中MessageDigest来实现数据加密的方法
2023-05-18 01:13:49
在Java内存模型中测试并发程序代码
2023-11-24 20:37:55