C# ComboBox枚举量绑定的 两种方法

概述

    ComboBox绑定枚举量的方法有很多,今天列举比较常用的两种,希望对读者们一些帮助!

代码讲解

   前台XMAL:


        
        
    

这里因为我使用了Calibrun.Micro WPF框架,他可以通过名称实现自动绑定。

后台cs代码:

using Caburn.Micro.Hello.Helper;
using System;


namespace Caliburn.Micro.Hello.ViewModels
{
    public class ComboboxViewModel : Screen, IViewModel
    {
        public BindableCollection EvenType1 { get; set; } = BindableCollectionHelper.Create();
        public BindableCollection EvenType2 { get; set; } = new BindableCollection();


        public ComboboxViewModel()
        {
            DisplayName = "ComboboxBinding";


            foreach (EvenType evenType in Enum.GetValues(typeof(EvenType)))
            {
                EvenType2.Add(evenType);
            }
        }


    }
}

这里第一种方法借助了集合的扩展方法实现:

public static class BindableCollectionHelper
    {
        /// 
        /// 根据传入枚举类型,返回枚举的BindableCollection
        /// 
        /// 指定的枚举类型
        /// 指定枚举的BindableCollection
        public static BindableCollection Create() where TEnum : Enum
        {
            var itemSource = new BindableCollection();
            foreach (var item in Enum.GetNames(typeof(TEnum)))
            {
                itemSource.Add((TEnum)Enum.Parse(typeof(TEnum), item));
            };


            return itemSource;
        }
    }

这样写的好处就是通用性比较强,封装好以后多个地方都可以公用。

第二种方法通过遍历枚举进行添加

foreach (EvenType evenType in Enum.GetValues(typeof(EvenType)))
            {
                EvenType2.Add(evenType);
            }

以上就是ComboBox枚举量绑定的 两种方法的讲解。

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

你可能感兴趣的:(c#,wpf,开发语言)