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

    欢迎赞助:

  • 相关阅读:
    RadioGroup,Radio单选按钮,CheckBox的使用
    使用Intent启动图片裁剪时遇到的问题:Intent#setData()与Intent#setType()赋值问题
    onActivityResult()的用法
    android:图片裁剪
    Sublime Text快捷键
    sublime text3 安装插件
    windows的git服务器搭建
    查询字符串是否已存在
    js 兼容基础
    SOA 一些基本概念
  • 原文地址:https://www.cnblogs.com/yahle/p/1807946.html
Copyright © 2011-2022 走看看