zoukankan      html  css  js  c++  java
  • 给winform的Combox绑定枚举类型

    网上搜索到一些代码,感觉不合适自己写了一个。

    用于绑定的枚举泛型
    /// <summary>
    /// 用于Combox显示绑定的对象
    /// </summary>
    public class BindComboxEnumType<T>
    {
    /// <summary>
    /// 类型的名字
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 类型
    /// </summary>
    public T Type { get; set; }

    private static readonly List<BindComboxEnumType<T>> bindTyps;

    static BindComboxEnumType()
    {
    bindTyps
    = new List<BindComboxEnumType<T>>();

    foreach(var name in Enum.GetNames(typeof(T)))
    {
    bindTyps.Add(
    new BindComboxEnumType<T>()
    {
    Name
    = name,
    Type
    = (T)Enum.Parse(typeof(T), name)
    });
    }
    }

    /// <summary>
    /// 绑定的类型数据
    /// </summary>
    public static List<BindComboxEnumType<T>> BindTyps
    {
    get { return bindTyps; }
    }
    }
    然后在初始化的时候,把枚举类型绑定到DataSource里就行。

            /// <summary>
            /// 控件初始化
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void UCMessage_Load(object sender, EventArgs e)
            {
                cPlusTypeBindTypeBindingSource.DataSource = BindComboxEnumType<CPlusType>.BindTyps;
                cbDirection.DataSource = BindComboxEnumType<MessageDirection>.BindTyps;
                cbDirection.DisplayMember = "Name";
                cbDirection.ValueMember = "Type";
            }
    
    

    注意,需要设置combox的DisplayMember和ValueMember,可以在代码里设置,也可以直接在属性框里设置。同时,也可以在Combox里绑定上对应的值对象,需要将bindingSource里的对应变量绑定到SelectedValue里,绑定到selectedItem会出错。

    image

    作者:Yahle
    原载:http://www.cnblogs.com/yahle
    版权所有。转载时必须以链接形式注明作者和原始出处。

    欢迎赞助:

  • 相关阅读:
    【剑指Offer面试编程题】题目1504:把数组排成最小的数--九度OJ
    【剑指Offer面试编程题】题目1373:整数中1出现的次数--九度OJ
    【剑指Offer面试编程题】题目1372:最大子向量和--九度OJ
    【剑指Offer面试编程题】题目1371:最小的K个数--九度OJ
    vue路由传参
    Es5.Es6区别
    面向对象和面向过程
    vuex
    Vue脚手架使用
    vue中fetch请求
  • 原文地址:https://www.cnblogs.com/yahle/p/1807946.html
Copyright © 2011-2022 走看看