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,

    }
    }

  • 相关阅读:
    PHP中几种加密形式
    PHP 常用的header头部定义汇总
    php二维数组排序方法(array_multisort,usort)
    js刷新当前页面的几种方法
    chosen.jquery插件的使用
    [NOI2006] 网络收费
    [NOI2002] 贪吃的九头蛇
    [NOI2013] 向量内积
    [TJOI2019] 甲苯先生的线段树
    [CF750G] New Year and Binary Tree Paths
  • 原文地址:https://www.cnblogs.com/VueDi/p/10904463.html
Copyright © 2011-2022 走看看