[WinForm]为ComboBox绑定数据源并提供下拉提示_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > [WinForm]为ComboBox绑定数据源并提供下拉提示

[WinForm]为ComboBox绑定数据源并提供下拉提示

 2014/7/21 15:41:57  楚人游子  程序员俱乐部  我要评论(0)
  • 摘要:关键代码:///<summary>///为ComboBox绑定数据源并提供下拉提示///</summary>///<typeparamname="T">泛型</typeparam>///<paramname="combox">ComboBox</param>///<paramname="list">数据源</param>///<
  • 标签:for 数据 winform

关键代码:

class="csharpcode">        /// <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);
            }
        }

代码效果:

image

希望有所帮助!

发表评论
用户名: 匿名