1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Windows.Forms; namespace KK.Control.Helper { public class CmbHelper { //定义一个用于保存静态变量的实例 private static CmbHelper instance = null ; //定义一个保证线程同步的标识 private static readonly object locker = new object (); //构造函数为私有,使外界不能创建该类的实例 private CmbHelper() { } public static CmbHelper Instance { get { if (instance == null ) { lock (locker) { if (instance == null ) instance = new CmbHelper(); } } return instance; } } public TModel GetTModel<TModel>(ComboBox cmb) { //ZB.QueueSys.Model.QS_QUEUE queue = this.cmbQueue.SelectedItem as ZB.QueueSys.Model.QS_QUEUE; //StudentInfos stu = CmbHelper.Instance.GetTModel<StudentInfos>(this.cmbTest); return (TModel)cmb.SelectedItem; } public void BindingCmb<TModel>(List<TModel> list, ComboBox cmb, string displayMember) { if (list == null || list.Count <= 0) { cmb.DataSource = null ; return ; } cmb.DataSource = list; cmb.DisplayMember = displayMember; cmb.SelectedIndex = 0; //List<V_APPLYDEPART> departs = AppDepartBLL.GetApplyDeparts(); //if (departs != null && departs.Count > 0) departs.Insert(0, new V_APPLYDEPART { APPLYDEPART = PubVariable.All, DEPARTID = "-1" }); //PubHelper.Instance.BindingCmb(departs, this.cmbDepart, "APPLYDEPART"); } public void BindingCmbAndInsetAll<TModel>(List<TModel> list, ComboBox cmb, string displayMember, string all = "全部" ) { if (list == null || list.Count <= 0) { cmb.DataSource = null ; return ; } cmb.Items.Clear(); cmb.Items.Add(all); foreach (TModel item in list) { cmb.Items.Add(item); } //cmb.DataSource = list; cmb.DisplayMember = displayMember; cmb.SelectedIndex = 0; //PubHelper.Instance.BindingCmb(departs, this.cmbDepart, "APPLYDEPART"); } /// <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 void Bind<T>(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 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); } } } |
博客内容主要用于日常学习记录,内容比较随意,如有问题,还需谅解!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本