Exemple #1
0
        /// <summary> 绑定枚举的Desc特性名称 </summary>
        public static void BindEnumItemShowDesc <T>(this ComboBox cmb)
            where T : struct, IComparable
        {
            //  是枚举
            if (typeof(T).IsEnum)
            {
                List <string> objs = new List <string>();

                FieldInfo[] files = typeof(T).GetFields();

                List <EnumDisplayModel> models = new List <EnumDisplayModel>();

                foreach (var v in files)
                {
                    EnumDisplayModel model = new EnumDisplayModel();
                    model.Field = v;
                    DescriptionAttribute r = v.GetCustomAttribute <DescriptionAttribute>();
                    if (r != null)
                    {
                        model.Description = r.Description;
                        models.Add(model);
                    }
                }

                cmb.DataSource = models;

                cmb.DisplayMember = "Description";
            }
        }
Exemple #2
0
        /// <summary> 获取选中的枚举值 </summary>
        public static T GetEnumItemByDesc <T>(this ComboBox cmb) where T : struct, IComparable
        {
            EnumDisplayModel model = cmb.SelectedItem as EnumDisplayModel;

            T testenum = (T)Enum.Parse(typeof(T), model.Field.Name, false);

            return(testenum);
        }