zoukankan      html  css  js  c++  java
  • WPF中ComboBox控件绑定键值对操作

    WPF中下拉框将键值对作为其数据源的具体操作。本实例以枚举类型以及枚举特性描述字符串生成键值对来进行。

    namespace ViewC

    {
    /// <summary>
    /// View.xaml 的交互逻辑
    /// </summary>
    public partial class View : Window
    {

    private EnumType_enumType= EnumType.B;

    public View()
    {
      InitializeComponent();
      InitialComBox();
    }


    private void InitialComBox()
    {
      Dictionary<EnumType, string> keyValues = new Dictionary<EnumType, string>();
      var pro = typeof(EnumType).GetFields();//字段值
      for (int i = 0; i < pro.Count(); i++)
      {
        if (pro[i].FieldType.IsEnum)//枚举类型
        {
          var descrips = (DescriptionAttribute[])pro[i].GetCustomAttributes(typeof(DescriptionAttribute), false);//特性描述
          if (descrips.Length < 0) continue;
          var key = (EnumType)typeof(EnumType).InvokeMember(pro[i].Name, System.Reflection.BindingFlags.GetField, null, null, null);//根据枚举名称得到相应枚举值
          keyValues.Add(key, descrips[0].Description);
        }
      }
      cmbControlType.ItemsSource = keyValues;
      cmbControlType.DisplayMemberPath = "Value";
      cmbControlType.SelectedValuePath = "Key";
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
      //this.cmbControlType.SelectedValue = _controlStepType;//直接赋值selectvalue属性不会触发selectchanged事件
      this.cmbControlType.SelectedIndex = 0;
    }

    private void CmbControlType_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
      var controlType = (EnumType)this.cmbControlType.SelectedValue;
      //DoSomething

      MessageBox.Show(controlType .ToString());

    }

    }

    public enum EnumType
    {
      /// <summary>
      /// AA
      /// </summary>
      [Description("AA")]
      A,

      /// <summary>
      /// BB
      /// </summary>
      [Description("BB")]
      B,

      /// <summary>
      /// CC
      /// </summary>
      [Description("CC")]
      C,

    }
    }

  • 相关阅读:
    如何输出高精度时间差
    GetThreadTimes获取其它线程cpu时间
    12-Python基础之类与面向对象
    10-Python函数之递归
    09-Python基础之内置函数与匿名函数
    08-Python基础之迭代器与生成器
    07-Python基础之装饰器
    06-Python基础之函数进阶(嵌套,作用域)
    05-Python基础之函数基础
    04-Python基础之文件操作基础
  • 原文地址:https://www.cnblogs.com/VueDi/p/10904463.html
Copyright © 2011-2022 走看看