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
    版权所有。转载时必须以链接形式注明作者和原始出处。

    欢迎赞助:

  • 相关阅读:
    Python简单的闹钟程序(Win)+开机自启
    (未完待续)学习机器学习必备的线性代数知识
    条件随机场 0 | 随机过程的概念及其统计特征
    Python-OpenCV学习(五):二维绘图
    Python-OpenCV学习(四):基本图像处理
    Python-OpenCV学习(二):OpenCV+python在windows上的安装
    CF 158A
    CF 84 div1 A
    CF 153 div1 A
    CF 171B
  • 原文地址:https://www.cnblogs.com/yahle/p/1807946.html
Copyright © 2011-2022 走看看